Windows窗体:如何在文本框上执行厚闪烁的光标?

时间:2009-05-21 17:50:45

标签: .net winforms textbox

我正在重写一个Windows窗体应用程序(更新的框架,重写逻辑等),有一件事我无法弄清楚它们是如何做的。 原始应用程序中的文本框有一个厚闪烁的光标,如下所示:http://screencast.com/t/8QYUcjuh3n

对于我的生活,我无法想象如何做到这一点。请帮帮忙?

1 个答案:

答案 0 :(得分:1)

您可以使用pinvoke CreateCaret

来执行此操作

该示例使用带有按钮(button1)和文本框(textBox1)的Winform。

使用指令添加此内容:

using System.Runtime.InteropServices;

添加这些声明:

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

将此代码添加到按钮点击事件:

  // Thickness is set where I have 10.
  CreateCaret(textBox1.Handle, IntPtr.Zero, 10, textBox1.Height);
  ShowCaret(textBox1.Handle);

当你点击按钮时,你会得到一个更粗的光标。

还讨论了这个here