カスタムコントロールの再描画について
- 題名: カスタムコントロールの再描画について
- 著者: medaka
- 日時: 2004/11/04 17:51:15
- ID: 7160
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: カスタムコントロールの再描画について
- 著者: 管理人
- URL: http://dobon.net
- 日時: 2004/11/05 4:03:28
- ID: 7167
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: カスタムコントロールの再描画について
- 著者: medaka
- 日時: 2004/11/05 10:20:39
- ID: 7174
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
VB.NETでカスタムコントロール作りに挑戦しています
TextBoxを継承したクラスでフォーカス時のみBorderColorを青くして、
BackColorをレモン色に
フォーカスがない場合はBorder設定しない、BaclColorも白に戻す
というふうにしたいのですが
Public Class TextBoxTest
Inherits TextBox
Dim g As Graphics = CreateGraphics()
Protected Overrides Sub OnEnter(ByVal e As System.EventArgs)
g.DrawLine(Pens.Black, 2, 2, 30, 30)
Me.BackColor = Color.LemonChiffon
Me.Refresh()
End Sub
Protected Overrides Sub OnLeave(ByVal e As System.EventArgs)
Me.BackColor = Color.White
Me.Refresh()
End Sub
End class
BackColorは変更できたのですが、DrawLineで描画した線が一瞬で消えてしまいます
TexbBoxのOnPaint、OnPaintBackgroundもオーバーライドしてみたのですが通らない
ようです。親コントロールから描画しようとしてもNewコントラクタ内で
Me.Parent,Mybase.ParentはNothingが返ってきます
描画のコードをどのプロシージャに置けば再描画してくれるのでしょうか?