WinForms 文本框的自定义插入符号

2024-01-08

我正在 WinForms .Net 2.0 应用程序中开发一个类似自定义超级终端的应用程序。我在面板中有一个多行文本框,您可以在其中与硬件设备交互。

我的客户想要一个自定义插入符,一个大小为一个字符空间的填充矩形,而不是默认的垂直线。

我知道 .Net 默认情况下不提供执行此操作的选项,但必须有一些 Windows 函数来执行此操作。


这些是 Windows 提供的 Native Caret 函数列表,您可以将它们用于您的应用程序。

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

    [DllImport("User32.dll")]
    static extern bool SetCaretPos(int x, int y);

    [DllImport("User32.dll")]
    static extern bool DestroyCaret();

    [DllImport("User32.dll")]
    static extern bool ShowCaret(IntPtr hWnd);

    [DllImport("User32.dll")]
    static extern bool HideCaret(IntPtr hWnd);

请参阅 SharpDevelop,源代码 @ src\Libraries\ICSharpCode.TextEditor\Project\Src\Gui\Caret.cs

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WinForms 文本框的自定义插入符号 的相关文章

随机推荐