2012-10-06 57 views

回答

1

请尝试下面的示例代码。

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

好,我说的不是鼠标光标,我正在对文本框闪烁的光标.. –

+0

MB你的意思是所谓的插入符 – FLCL

+0

yes..sorry误导性.. –

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

这不起作用.. –

+0

@NitinKabra这对我有效,但只要我点击文本框,正常的插入符号被恢复。 –

0

我得到了它使用类似于以下(感谢Prabhakantha)代码工作。我不得不用一个定时器来控制光标处理文本框中输入事件之后:

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

这似乎有点hackish的,虽然。一定会有更好的办法。