如何将文本框闪烁插入符号更改为命令行样式插入符号,即。文本框中的水平光标。
问问题
890 次
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 回答