- 題名: コンボボックスのリストの非表示
- 日時: 2010/07/02 23:56:13
- ID: 27013
- この記事の返信元:
- (なし)
- この記事への返信:
- [27016] Re[1]: コンボボックスのリストの非表示2010/07/03 14:33:51
- ツリーを表示
> comboboxのボタンとbuttonコントロールの形が違うので
> 若干違和感があります。コーディングでなくすことは可能なのでしょうか…
ComboBoxRenderer.DrawDropDownButton()メソッドはいかがでしょうか?
shuさんのユーザーコントロールのボタン部分を、
自作ボタンに置き換えればいけると思います。
Public Class ComboBoxButton
Inherits Control
Dim _state As VisualStyles.ComboBoxState = VisualStyles.ComboBoxState.Normal
Protected Overrides Sub OnMouseEnter(ByVal e As System.EventArgs)
Me._state = VisualStyles.ComboBoxState.Hot
Me.Invalidate()
MyBase.OnMouseEnter(e)
End Sub
Protected Overrides Sub OnMouseLeave(ByVal e As System.EventArgs)
Me._state = VisualStyles.ComboBoxState.Normal
Me.Invalidate()
MyBase.OnMouseLeave(e)
End Sub
Protected Overrides Sub OnMouseDown(ByVal e As System.Windows.Forms.MouseEventArgs)
Me._state = VisualStyles.ComboBoxState.Pressed
Me.Invalidate()
MyBase.OnMouseDown(e)
End Sub
Protected Overrides Sub OnMouseUp(ByVal e As System.Windows.Forms.MouseEventArgs)
Me._state = VisualStyles.ComboBoxState.Normal
Me.Invalidate()
MyBase.OnMouseUp(e)
End Sub
Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
ComboBoxRenderer.DrawDropDownButton(e.Graphics, New Rectangle(0, 0, Me.Width, Me.Height), Me._state)
MyBase.OnPaint(e)
End Sub
End Class
分類:[.NET]
Comboboxを継承したTextboxでユーザーコントロールを作成してます。
Comboboxの▼ボタン押下時に
リストor他のフォームを表示させたいと考えています。
どちらを表示させるかはプロパティ等で分岐させようとおもっています。
dropdownイベント等でフォームを開くことはできるのですが、
リスト(itemは追加してないので白い枠のみ)も同時に開いてしまいます。
これを抑制することは可能でしょうか?
以前↓の掲示板で質問していましたが、
回答がありませんでしたので解決済みにて
質問を閉じさせて頂きました
http://bbs.wankuma.com/index.cgi?mode=al2&namber=50840
以上よろしくお願いします。