0

如何将文本框闪烁插入符号更改为命令行样式插入符号,即。文本框中的水平光标。

4

3 回答 3

2

请尝试以下代码

[DllImport("user32.dll")]
static extern bool CreateCaret(IntPtr hWnd, IntPtr hBitmap, int nWidth, int nHeight);
[DllImport("user32.dll")]
static extern bool ShowCaret(IntPtr hWnd);

public Form1()
{
    InitializeComponent();
}

private void Form1_Shown(object sender, EventArgs e)
{
    CreateCaret(textBox1.Handle, IntPtr.Zero, 10, textBox1.Height);
    ShowCaret(textBox1.Handle);
}
于 2012-10-06T16:12:23.900 回答
1

请尝试以下示例代码。

this.Cursors = Cursor.None;
this.cursors = cursor.pointer or cursor.arrow
于 2012-10-06T14:27:38.363 回答
0

我使用如下代码让它工作(感谢 Prabhakantha)。在处理文本框 Enter 事件后,我不得不使用计时器来设置光标:

    private void textBox1_Enter(object sender, EventArgs e)
    {
        timer1.Enabled = true;
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        timer1.Enabled = false;
        CreateCaret(textBox1.Handle, IntPtr.Zero, 6, textBox1.Height);
        ShowCaret(textBox1.Handle);
    }

不过,这似乎有点骇人听闻。一定会有更好的办法。

于 2012-10-08T19:25:34.817 回答