C# 防止文本框中的闪烁光标,解决方案不起作用
C# Prevent Blinking Cursor in Textbox, Solution not Working
我发现 many 页面描述了如何防止闪烁的插入符号。看起来很简单。
[DllImport("user32")]
public static extern bool HideCaret(IntPtr hWnd);
private void OnFocusEnterSpecificTextbox(object sender, EventArgs e)
{ HideCaret(SpecificTextbox.Handle); }
它不起作用。当我单击文本框时,会出现插入符号。我可以断点并看到我正在点击该代码。
我犯了什么愚蠢的错误?
这有效(VS 2008 on Windows 7):
public partial class Form1 : Form
{
[DllImport("user32")]
public static extern bool HideCaret(IntPtr hWnd);
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
textBox1.GotFocus += new EventHandler(textBox1_GotFocus);
}
void textBox1_GotFocus(object sender, EventArgs e)
{
HideCaret(textBox1.Handle);
}
}
这是另一种在 TextBox
中停止闪烁光标的方法:
public partial class Form1 : Form
{
[DllImport("user32.dll")]
static extern bool HideCaret(IntPtr hWnd);
public Form1()
{
InitializeComponent();
textBox1.GotFocus += (s1, e1) => { HideCaret(textBox1.Handle); };
}
}
我发现 many 页面描述了如何防止闪烁的插入符号。看起来很简单。
[DllImport("user32")]
public static extern bool HideCaret(IntPtr hWnd);
private void OnFocusEnterSpecificTextbox(object sender, EventArgs e)
{ HideCaret(SpecificTextbox.Handle); }
它不起作用。当我单击文本框时,会出现插入符号。我可以断点并看到我正在点击该代码。
我犯了什么愚蠢的错误?
这有效(VS 2008 on Windows 7):
public partial class Form1 : Form
{
[DllImport("user32")]
public static extern bool HideCaret(IntPtr hWnd);
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
textBox1.GotFocus += new EventHandler(textBox1_GotFocus);
}
void textBox1_GotFocus(object sender, EventArgs e)
{
HideCaret(textBox1.Handle);
}
}
这是另一种在 TextBox
中停止闪烁光标的方法:
public partial class Form1 : Form
{
[DllImport("user32.dll")]
static extern bool HideCaret(IntPtr hWnd);
public Form1()
{
InitializeComponent();
textBox1.GotFocus += (s1, e1) => { HideCaret(textBox1.Handle); };
}
}