MESCIUS InputMan for Windows Forms 12.0J
サイドボタンの設定

コントロールの左右両端にはサイドボタンとして自由にボタンを配置し機能を割り付けることができます。本項では、コントロール内に追加可能なボタンの使用方法について解説します。

ボタンの種類

コントロールには次の4種類のボタンオブジェクトを追加できます。

DropDownButton (ドロップダウンボタン)


下向きの矢印が描かれたボタンです。主にドロップダウンウィンドウを表示するために用いられます。数値コントロールでは、ドロップダウン電卓を表示可能です。ドロップダウンの動作は、DropDown プロパティが 参照するDropDown クラスにより次のようなプロパティを設定できます。

SpinButton (スピンボタン)


上下それぞれに矢印が描かれた2つのボタンが組み合わされたボタンです。主にコントロール内の値を増減するために用いられます。上側のボタンをクリックするとSpinUp イベント、下側のボタンをクリックするとSpinDown イベントが発生します。
数値コントロールでは、Spin プロパティが参照する NumberSpin クラスにより、次のようなスピン機能の動作を設定することができます。

SpinModeプロパティはNumberSpinMode 型で提供され、次の3つの値を設定することができます。

SpinModeの値 説明
Field アクティブなフィールドの値を増減します。
Value コントロールの値を増減します。
Digits キャレットが置かれている桁の数値を増減します。

SideButton (サイドボタン)


標準のButtonコントロールと同じような外観を持つボタンです。ボタン上にはイメージとテキストを設定することができます。通常のボタンと同様Click イベントのイベントハンドラに処理を実装することが可能です。
また、CheckOnClick プロパティを使用するとチェックボタンとして機能させることもできます。 この場合、チェック状態が変化すると、CheckedChanged イベントが発生します。

SymbolButton (シンボルボタン)


SideButtonと同様、標準のButtonコントロールと似た外観を持ちますが、提供されたイメージの中からボタン上に表示する画像を設定することができます。イメージは、Symbol プロパティを使用して設定し、SymbolDirection プロパティを使用してイメージの向きを設定することができます。
シンボルボタンにはテキストは表示できません。

ボタンの追加と削除

コードによる設定

コントロールにボタンを追加するには、SideButtons プロパティが参照するSideButtonCollection クラスのAdd またはAddRange メソッドを使用します。 SideButtonCollection クラスは、コントロールに追加するボタンオブジェクトのコレクションで、コントロールに追加可能なサイドボタンを追加、削除するためのメソッドを提供します。

以下は、Add メソッドを使用して数値コントロールにスピンボタンを追加する例です。

' スピンボタンを追加
GcNumber1.SideButtons.Add(New GrapeCity.Win.Editors.SpinButton())
// スピンボタンを追加
gcNumber1.SideButtons.Add(new GrapeCity.Win.Editors.SpinButton());

また、追加したボタンオブジェクトのParent プロパティからは、ボタンが追加されたコントロールのオブジェクトを取得することができます。

追加したボタンを削除するには、SideButtonCollection クラスのRemove メソッドまたは、RemoveAt メソッドを使用します。また、Clear メソッドでコレクションに追加されたすべてのボタンをクリアすることができます。

以下は、RemoveAt メソッドを使用してコレクションの先頭に追加されたボタンを削除する例です。

' コレクションの先頭のボタンを削除
If  GcNumber1.SideButtons.Count > 0 Then
    GcNumber1.SideButtons.RemoveAt(0)
End If
// コレクションの先頭のボタンを削除
if (gcNumber1.SideButtons.Count > 0)
{
    gcNumber1.SideButtons.RemoveAt(0);
}

デザイン画面での設定

デザイン画面ではサイドボタンの追加や削除ができる「サイドボタンの編集」エディタから容易な設定が可能です。 このエディタは次のいずれかの方法で起動でき、数値コントロールに追加するサイドボタンを設定できます。

また、コントロールに追加されたボタンオブジェクトは、Visual Studioのデザインウィンドウ上で選択し、ボタン毎にプロパティウィンドウを使ってボタンのプロパティの変更やイベントハンドラの実装を行うことができます。すべてのサイドボタンはデザイン画面上でダブルクリックすることで、自動的にClick イベントのイベントハンドラのコードが生成されます。

ドロップダウン動作の割り当て

DropDownButton クラスは、既定のドロップダウン動作の割り当てを設定するIsDefaultBehavior プロパティを提供します。
数値コントロールでは、IsDefaultBehavior プロパティをTrue に設定すると、ドロップダウンボタンにはドロップダウン電卓を表示する動作が割り当てられます。
ドロップダウン電卓の詳細については「ドロップダウン電卓」を参照してください。

なお、ドロップダウン電卓を表示するには、次の4つの方法があります。

AutoHideTouchKeyboard プロパティを使用すると、ドロップダウン電卓がタッチキーボードの背面に隠れないよう、タッチキーボードを自動的に非表示にすることができます。詳細については「タッチキーボードの制御」を参照してください。

スピン動作の割り当て

スピンボタン、サイドボタンおよびシンボルボタンには、プロパティの設定によりスピン動作の機能を割り当てることができます。

スピンボタンへの既定動作の割り当て

SpinButton クラスは、既定のスピン動作を割り当てるIsDefaultBehavior プロパティを提供します。
数値コントロールでは、IsDefaultBehavior プロパティをTrue に設定すると、スピンボタンにはコントロールの値を増減する動作が割り当てられます。

サイドボタンへのスピン動作の割り当て

SideButton クラスは、サイドボタンにスピン動作を割り当てるBehavior プロパティを提供します。また、Behavior プロパティに設定した値により、Interval プロパティとText プロパティの初期値が自動的に変更されます。
Behavior プロパティに設定可能な値は以下の通りです。

Behaviorの値 説明 Intervalプロパティの初期値 Textプロパティの初期値
None スピン動作を割り当てません。 0 なし
SpinUp スピンアップ(値を増加)の動作を割り当てます。 60 "+"
SpinDown スピンダウン(値を減少)の動作を割り当てます。 60 "-"

サイドボタンに割り当てられるスピン機能の詳細については「スピンボタンの最適化」を参照してください。

シンボルボタンへのスピン動作の割り当て

SymbolButton クラスは、サイドボタンにスピン動作を割り当てるBehavior プロパティを提供します。また、Behaviorプロパティに設定した値により、Interval プロパティ、Symbol プロパティおよびSymbolDirection プロパティの初期値が自動的に変更されます。

Behavior プロパティに設定可能な値は以下の通りです。

Behaviorの値 説明 Intervalプロパティの初期値 Symbolプロパティの初期値 SymbolDirectionプロパティの初期値
None スピン動作を割り当てません。 0 None Left
SpinUp スピンアップ(値を増加)の動作を割り当てます。 60 Arrow Up
SpinDown スピンダウン(値を減少)の動作を割り当てます。 60 Arrow Down

シンボルボタンに割り当てられるスピン機能の詳細については「スピンボタンの最適化」を参照してください。

イベントによる動作の割り当て

サイドボタンの押下時にドロップダウン、スピン動作といった既定以外の動作を割り当てたい場合は、各ボタンが押されたときに発生するClick イベントなどに動作を実装する必要があります。

次のサンプルコードは、数値コントロールにドロップダウン電卓を表示するためのドロップダウンボタンと、コントロールのフォントを変更するためのフォントダイアログを表示する2つのサイドボタンを追加する例です。
このサンプルでは、GcNumber1(数値コントロール)とFontDialog1がフォームに貼り付けられていることを前提にしています。

Imports GrapeCity.Win.Editors

' フォントボタンを定義
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")
    ' 数値コントロールにフォントボタンを追加 
    GcNumber1.SideButtons.Add(MyFontButton)
    ' 数値コントロールにドロップダウンボタンを追加 
    GcNumber1.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
        ' コントロールにフォントを設定します
        GcNumber1.Font = FontDialog1.Font
    End If
End Sub
using GrapeCity.Win.Editors;

// フォントボタンを定義
private SideButton myFontButton = new SideButton();

private void from1_Load(object sender, EventArgs e)
{
    // フォントボタンにイベントハンドラを関連付け
    myFontButton.Click += new EventHandler(myFontButton_Click);
    // フォントボタンにイメージを設定
    myFontButton.Image = Image.FromFile("C:\\FontDialog.png");
    // 数値コントロールにフォントボタンを追加
    gcNumber1.SideButtons.Add(myFontButton);
    // 数値コントロールにドロップダウンボタンを追加
    gcNumber1.SideButtons.Add(new DropDownButton());
}

// フォントボタンのクリックイベント
void myFontButton_Click(object sender, EventArgs e)
{
    if (fontDialog1.ShowDialog() == DialogResult.OK)
    {
        // コントロールにフォントを設定します
        gcNumber1.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 の場合

関連トピック

 

 


© MESCIUS inc. All rights reserved.