2011-09-13 63 views
1

我正在在VB.NET的程序和需要隐藏插入符文本框。更改插入颜色或隐藏VB.NET

我可以忍受它是要么完全隐藏或者一样的颜色作为文本框的背景颜色。我怎么能这样做呢?如果可能的话,我宁愿远离自定义控件。

谢谢

+0

你为什么要这么做? – SLaks

+0

WinForms,Silverlight或WPF? –

+0

http://stackoverflow.com/questions/609927/custom-caret-for-winforms-textbox –

回答

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 
+0

只要我想出它的名字是插入符号而不是I-Beam,我就在Google上找到了解决方案。它和你的几乎一样,所以我会给你正确的解决方案。 –

+0

(我在这里找到:http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/d7296516-0a00-405b-b9c8-f6f812c80cfc/) –