我在VB.NET中制作一个程序,需要在文本框中隐藏Caret。
我可以将它完全隐藏,或者只是与文本框背景颜色相同的颜色。我该怎么做呢?如果可能的话,我宁愿远离自定义控件。
谢谢
答案 0 :(得分:5)
在项目中添加一个新类并粘贴下面显示的代码。编译。将新控件从工具箱顶部拖放到表单上。
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