更改Caret颜色或隐藏它VB.NET

Jos*_*lsh 1 vb.net textbox winforms

我在VB.NET中制作一个程序,需要在文本框中隐藏Caret.

我可以忍受它完全隐藏或与文本框背景颜色相同的颜色.我该怎么做呢?如果可能的话,我宁愿远离自定义控件.

谢谢

Han*_*ant 6

在项目中添加一个新类并粘贴下面显示的代码.编译.将新控件从工具箱顶部拖放到表单上.

Public Class NoCaretBox
  Inherits TextBox

  Protected Overrides Sub OnGotFocus(ByVal e As System.EventArgs)
    HideCaret(Me.Handle)
    MyBase.OnGotFocus(e)
  End Sub

  Protected Overrides Sub OnLostFocus(ByVal e As System.EventArgs)
    ShowCaret(Me.Handle)
    MyBase.OnLostFocus(e)
  End Sub

  Private Declare Function HideCaret Lib "user32.dll" (ByVal hWnd As IntPtr) As Boolean
  Private Declare Function ShowCaret Lib "user32.dll" (ByVal hWnd As IntPtr) As Boolean
End Class
Run Code Online (Sandbox Code Playgroud)