2011-12-30 14 views
3

私はそれが私が1色を表示する必要があり、マウスダウンで、私は別の色を表示する必要がマウスホバーであれば、私はwinformsでテキストボックスの枠線の色と幅を変更する方法?

下に示すものとしてテキストボックスの境界線の色や枠線の幅を変更する方法を知っているしたいと思います。

enter image description here

は、誰もが利用可能な場合、ソースと私に詳細なプロセスを説明することができます。

ありがとうございました。

答えて

4

あなたは次の操作を行うことができます:Panel

  • 内部TextBoxは、パネル1ピクセルのパディングを与える

    • 場所を
    • Fill
    • にテキストドックはありません持っているテキストボックスを作成し設定しますborder

    次に、マウスイベントをテキストボックスのswitchc hマウスが出入りするときの2色の間のパネルの背景色。

    これは、リソース/ハンドルの使用に関して最もエレガントなアプローチではありませんが、カスタム描画なしで機能するはずです。

  • +1

    ご返信ありがとうございます。これは、ペイントメソッドを使用するか、別のクラスを継承するのではなく、これが最も簡単な方法だと思います。 – coder

    2

    少し変わって同じです。残念ながら私は評判のためコメントできません。

    • は、
    • 設定パネルドックスタイルが左(6, 3, 6, 3
    • 設定パネルのパディングを埋めるために、すべての
    • 1に、ユーザーコントロール内のPanelを入れUserControl
    • 設定ユーザーコントロールのパディングを作ります上、右、下)
    • TextBoxをパネルの内側に入れます
    • なし

    から

  • 設定テキストボックスのBorderStyleを埋めるために
  • 設定テキストボックスドックスタイルは...その後、プロパティを変更する境界線の色のために、あなたはこの

    Dim tbxFocus As Boolean = False 
    
    Private Sub tbx_GotFocus(sender As Object, e As EventArgs) Handles tbx.GotFocus 
    
        tbxFocus = True 
        Me.BackColor = Color.CornflowerBlue 
    
    End Sub 
    
    Private Sub tbx_LostFocus(sender As Object, e As EventArgs) Handles tbx.LostFocus 
    
        tbxFocus = False 
        Me.BackColor = SystemColors.Control 
    
    End Sub 
    
    Private Sub tbx_MouseEnter(sender As Object, e As EventArgs) Handles tbx.MouseEnter 
    
        If tbxFocus = False Then Me.BackColor = SystemColors.ControlDark 
    
    End Sub 
    
    Private Sub tbx_MouseLeave(sender As Object, e As EventArgs) Handles tbx.MouseLeave 
    
        If tbxFocus = False Then Me.BackColor = SystemColors.Control 
    
    End Sub 
    

    を使用することができますそれはかなり自明です。

  • 関連する問題