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