C#.Net中Textbox的命令行样式插入符号

时间:2012-10-06 14:21:11

标签: c# .net vb.net

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

3 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分:1)

请尝试以下示例代码。

this.Cursors = Cursor.None;
this.cursors = cursor.pointer or cursor.arrow

答案 2 :(得分: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);
    }
但是,这看起来有点像黑客。必须有更好的方法。