我找到了很多描述如何防止闪烁插入符号的页面。 看起来很简单。
[DllImport("user32")]
public static extern bool HideCaret(IntPtr hWnd);
private void OnFocusEnterSpecificTextbox(object sender, EventArgs e)
{ HideCaret(SpecificTextbox.Handle); }
它不起作用。 当我单击文本框时,有插入符号。 我可以断点并看到我正在点击该代码。
我犯了什么愚蠢的错误?
这有效(Windows 7 上的 VS 2008(:
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); };
}
}