PowerTools InputMan for Windows Forms 8.0J > InputManの使い方 > テキストコントロール > サイドボタンの設定 |
コントロールの左右両端にはサイドボタンとして自由にボタンを配置し機能を割り付けることができます。本項では、コントロール内に追加可能なボタンの使用方法について解説します。
コントロールには次の4種類のボタンオブジェクトを追加できます。
下向きの矢印が描かれたボタンです。主にドロップダウンウィンドウを表示するために用いられます。テキストコントロールでは、エディットウィンドウをドロップダウン表示することが可能です。ドロップダウンの動作は、DropDown プロパティが 参照するDropDown クラスにより次のようなプロパティを設定できます。
上下それぞれに矢印が描かれた2つのボタンが組み合わされたボタンです。主にコントロール内の値を増減するために用いられます。上側のボタンをクリックするとSpinUp イベント、下側のボタンをクリックするとSpinDown イベントが発生します。
標準のButtonコントロールと同じような外観を持つボタンです。ボタン上にはイメージとテキストを設定することができます。通常のボタンと同様Click イベントのイベントハンドラに処理を実装することが可能です。
また、CheckOnClick プロパティを使用するとチェックボタンとして機能させることもできます。 この場合、チェック状態が変化すると、CheckedChanged イベントが発生します。
SideButton と同様、標準のButton コントロールと似た外観を持ちますが、提供されたイメージの中からボタン上に表示する画像を設定することができます。イメージは、Symbol プロパティを使用して設定し、SymbolDirection プロパティを使用してイメージの向きを設定することができます。
シンボルボタンにはテキストは表示できません。
コントロールにボタンを追加するには、SideButtons プロパティが参照するSideButtonCollection のAdd またはAddRange メソッドを使用します。 クラスを使用します。SideButtonCollection クラスは、コントロールに追加するボタンオブジェクトのコレクションで、コントロールに追加可能なサイドボタンを追加、削除するためのメソッドを提供します。
以下は、Add メソッドを使用してテキストコントロールにドロップダウンボタンを追加する例です。
' ドロップダウンボタンを追加します。 GcTextBox1.SideButtons.Add(New GrapeCity.Win.Editors.DropDownButton())
// ドロップダウンボタンを追加します。 gcTextBox1.SideButtons.Add(new GrapeCity.Win.Editors.DropDownButton());
また、追加したボタンオブジェクトのParent プロパティからは、ボタンが追加されたコントロールのオブジェクトを取得することができます。
追加したボタンを削除するには、SideButtonCollectionクラスのRemove メソッドまたは、RemoveAt メソッドを使用します。また、Clear メソッドでコレクションに追加されたすべてのボタンをクリアすることができます。
以下は、RemoveAt メソッドを使用してコレクションの先頭に追加されたボタンを削除する例です。
' コレクションの先頭のボタンを削除します。 If GcTextBox1.SideButtons.Count > 0 Then GcTextBox1.SideButtons.RemoveAt(0) End If
// コレクションの先頭のボタンを削除します。 if (gcTextBox1.SideButtons.Count > 0) { gcTextBox1.SideButtons.RemoveAt(0); }
デザイン画面ではサイドボタンの追加や削除ができる「サイドボタンの編集」エディタから容易な設定が可能です。 このエディタは次のいずれかの方法で起動でき、テキストコントロールに追加するサイドボタンを設定できます。
また、コントロールに追加されたボタンオブジェクトは、Visual Studio のデザインウィンドウ上で選択し、ボタン毎にプロパティウィンドウを使ってボタンのプロパティの変更やイベントハンドラの実装を行うことができます。
すべてのサイドボタンはデザイン画面上でダブルクリックすることで、自動的にClick イベントのイベントハンドラのコードが生成されます。
DropDownButton クラスは、既定のドロップダウン動作の割り当てを設定するIsDefaultBehavior プロパティを提供します。
テキストコントロールでは、IsDefaultBehavior プロパティをTrue に設定すると、ドロップダウンボタンにはエディットウィンドウを表示する動作が割り当てられます。
エディットウィンドウの詳細については「ドロップダウンエディットウィンドウ」を参照してください。
なお、エディットウィンドウを表示するには、次の4つの方法があります。
AutoHideTouchKeyboard プロパティを使用すると、エディットウインドウがタッチキーボードの背面に隠れないよう、タッチキーボードを自動的に非表示にすることができます。詳細については「タッチキーボードの制御」を参照してください。
スピンボタン、サイドボタンおよびシンボルボタンは、スピン動作の機能を割り当てる以下のプロパティを提供していますが、テキストコントロールには既定のスピン動作が存在しないため、設定値に関わらず無効です。
サイドボタンの押下時にドロップダウン、スピン動作といった既定以外の動作を割り当てたい場合は、各ボタンが押されたときに発生するClick イベントなどに動作を実装する必要があります。
次のサンプルコードは、テキストコントロールにエディットウィンドウを表示するためのドロップダウンボタンと、コントロールのフォントを変更するためのフォントダイアログを表示する2つのサイドボタンを追加する例です。
このサンプルでは、GcTextBox1(テキストボックス)とFontDialog1がフォームに貼り付けられていることを前提にしています。
Imports GrapeCity.Win.Editor ' フォントボタンを定義します。 Private MyFontButton As New SideButton() Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' フォントボタンにイベントハンドラを関連付けます。 AddHandler MyFontButton.Click, AddressOf MyFontButton_Click ' フォントボタンにイメージを設定します。 MyFontButton.Image = Image.FromFile("C:\\FontDialog.png") ' テキストコントロールにフォントボタンを追加します。 GcTextBox1.SideButtons.Add(MyFontButton) ' テキストコントロールにドロップダウンボタンを追加します。 GcTextBox1.SideButtons.Add(New DropDownButton()) End Sub ' フォントボタンのクリックイベントを定義します。 Private Sub MyFontButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) If FontDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then ' コントロールにフォントを設定します。 GcTextBox1.Font = FontDialog1.Font End If End Sub
using GrapeCity.Win.Editor; // フォントボタンを定義します。 private SideButton myFontButton = new SideButton(); private void Form1_Load(object sender, EventArgs e) { // フォントボタンにイベントハンドラを関連付けます。 myFontButton.Click += new EventHandler(myFontButton_Click); // フォントボタンにイメージを設定します。 myFontButton.Image = Image.FromFile("C:\\FontDialog.png"); // テキストコントロールにフォントボタンを追加します。 gcTextBox1.SideButtons.Add(myFontButton); // テキストコントロールにドロップダウンボタンを追加します。 gcTextBox1.SideButtons.Add(new DropDownButton()); } // フォントボタンのクリックイベントを定義します。 void myFontButton_Click(object sender, EventArgs e) { if (fontDialog1.ShowDialog() == DialogResult.OK) { // コントロールにフォントを設定します。 gcTextBox1.Font = fontDialog1.Font; } }
各ボタンオブジェクトのPosition プロパティを使用するとボタンの表示位置を設定することができます。
Positionの値 | 説明 |
---|---|
0 - LeftInside | コントロールの内部左端に配置されます。 |
1 - LeftOutside | コントロールの外部左端に配置されます。 |
2 - RightInside | コントロールの内部右端に配置されます。 |
3 - RightOutside | コントロールの外部右端に配置されます。 |
それぞれの位置でのボタンの並びはコレクション内のインデックスによって決定されます。コレクション内のインデックスが小さい順に左から右へボタンが配置されます。
ボタンのサイズはコントロールの高さと各ボタンオブジェクトのButtonWidth プロパティによって設定されます。
サイドボタンの背景色は各ボタンオブジェクトのBackColor プロパティで、前景色はForeColor プロパティで設定します。背景色と前景色はコントロールのFlatStyle プロパティがFlatStyleEx.Flat、およびFlatStyleEx.Popup の場合のみ有効となります。FlatStyleEx.Standard の場合、背景色と前景色はSideButton オブジェクトとSymbleButton オブジェクトで有効になります。
(図) FlatStyle プロパティがFlat の場合
(図) FlatStyle プロパティがPopup の場合
(図) FlatStyle プロパティがStandard の場合