2011-09-13 5 views
1

VB.NET에서 프로그램을 만들고있어 텍스트 상자에 캐럿을 숨길 필요가 있습니다.캐럿 색상 변경 또는 숨기기 VB.NET

텍스트 상자 배경색과 완전히 같은 색이거나 완전히 숨겨져있을 수 있습니다. 어떻게이 일을 할 수 있습니까? 가능하다면 Custom Controls를 멀리하고 싶습니다.

+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 빔이 아니라면 Google에서 해결책을 찾았습니다. 그것은 당신과 거의 동일하므로 정확한 해결책을 드릴 것입니다. –

+0

(여기에서 찾았습니다. http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/d7296516-0a00-405b-b9c8-f6f812c80cfc/) –