C# 在Winforms中绘制闪烁的插入符号

C# 在Winforms中绘制闪烁的插入符号,c#,winforms,drawing,custom-controls,caret,C#,Winforms,Drawing,Custom Controls,Caret,我正在开发一个自定义控件,它最像一个文本区域。我正在绘制正确的文本,并接受同样有效的输入。。但我(用户)在打字时只能猜测插入符号在哪里,因为我是手动操作的。 如何绘制闪烁的插入符号以显示当前键入的位置?有没有标准的方法可以做到这一点?我认为,令人烦恼的是,没有用于插入符号的托管API。因此,您必须在Win32函数中输入插入符号,或者自己实现该功能(即,当且仅当控件具有输入焦点时,绘制和隐藏闪烁的插入符号) 例如,请参阅。我真的很讨厌使用win32函数,所以我想我一直无法手动绘制插入符号。仍然暗自

我正在开发一个自定义控件,它最像一个文本区域。我正在绘制正确的文本,并接受同样有效的输入。。但我(用户)在打字时只能猜测插入符号在哪里,因为我是手动操作的。
如何绘制闪烁的插入符号以显示当前键入的位置?有没有标准的方法可以做到这一点?

我认为,令人烦恼的是,没有用于插入符号的托管API。因此,您必须在Win32函数中输入插入符号,或者自己实现该功能(即,当且仅当控件具有输入焦点时,绘制和隐藏闪烁的插入符号)


例如,请参阅。

我真的很讨厌使用win32函数,所以我想我一直无法手动绘制插入符号。仍然暗自希望有人会出现,说“哦,不,用这个神奇的功能吧。”——)我希望如此。FWIW我显示插入符号的算法是绘制一个狭窄的矩形;为了隐藏插入符号,我使用背景色重新绘制矩形,并重新绘制单词(单词的背景矩形及其前景文本)。