C# 防止文本框中的光标闪烁,解决方案不起作用



我找到了很多描述如何防止闪烁插入符号的页面。 看起来很简单。

[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); };
}
}

最新更新