MESCIUS PlusPak for Windows Forms 12.0J
ボタン押下時の処理

GcFunctionKey コントロールのボタン押下時の処理について、以下に解説します。
FunctionKeyDownイベント
FunctionKeyDownイベントは、ファンクションキーボタンをキーボード上で押下したとき、または対応するボタンをマウスでクリックしたときに発生します。 FunctionKeyDown イベントに任意のコードを記述することで、ファンクションキー操作時に目的の動作を実現することができます。

次のサンプルコードでは、[F2]キーでフォーム上のコントロールをクリアする動作をファンクションキーボタンに追加する方法を示します。


Imports GrapeCity.Win.Bars

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    ' FunctionKeyButtonオブジェクトを作成します。
    Dim FunctionKeyButton1 As New FunctionKeyButton
    FunctionKeyButton1.FunctionKey = Keys.F2
    FunctionKeyButton1.Text = "全てクリア"
    
    ' FunctionKeyButtonオブジェクトをGcFunctionKey コントロールに追加します。
    GcFunctionKey1.FunctionKeyButtons.Add(FunctionKeyButton1)
End Sub

Private Sub GcFunctionKey1_FunctionKeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles GcFunctionKey1.FunctionKeyDown
    ' [F2]キーが押されたときの動作を実装します。
    If e.KeyCode = Keys.F2 Then
        TextBox1.Clear()
        NumericUpDown1.Value = 0
    End If
End Sub
using GrapeCity.Win.Bars;

private void Form1_Load(object sender, EventArgs e)
{
    // FunctionKeyButtonオブジェクトを作成します。
    FunctionKeyButton functionKeyButton1 = new FunctionKeyButton();
    functionKeyButton1.FunctionKey = Keys.F2;
    functionKeyButton1.Text = "全てクリア";
    
    // FunctionKeyButtonオブジェクトをGcFunctionKey コントロールに追加します。
    gcFunctionKey1.FunctionKeyButtons.Add(functionKeyButton1);
}

private void GcFunctionKey1_FunctionKeyDown(object sender, KeyEventArgs e)
{
    // [F2]キーが押されたときの動作を実装します。
    if (e.KeyCode == Keys.F2)
    {
        textBox1.Clear();
        numericUpDown1.Value = 0;
    }
}

さらに、InteractiveMouse プロパティを False に設定すると、マウスによるボタンクリックを禁止し、キーボード操作のみを対象にできます。KeyRepeat プロパティは、キーを押し続けている間、FunctionKeyDown イベントを繰り返し発生させるかどうかを指定します。
   
ButtonClickイベント
GcFunctionKey コントロールにはFunctionKeyDown イベントのほか、ButtonClickイベントが搭載されており、イベント内で押下されたファンクションキーのキーコードやNameプロパティを取得することができます。
次のサンプルコードではButtonClickイベントでイベントパラメータからキーコードおよびファンクションキーのNameプロパティを取得する方法を示します。
Private Sub GcFunctionKey1_ButtonClick(sender As Object, e As GrapeCity.Win.Bars.FunctionKeyButtonEventArgs) Handles GcFunctionKey1.ButtonClick
    ' イベントパラメータから押下されたキーを取得します。
    If e.Button.FunctionKey = Keys.F1 Then
        Console.WriteLine(e.Button.Name)
    End If

    ' イベントパラメータから押下されたキーのNameプロパティを取得します。
    If String.CompareOrdinal(e.Button.Name, "FunctionKeyButton2") = 0 Then
        Console.WriteLine(e.Button.Name)
    End If
End Sub
private void gcFunctionKey1_ButtonClick(object sender, GrapeCity.Win.Bars.FunctionKeyButtonEventArgs e)
{
    // イベントパラメータから押下されたキーを取得します。
    if (e.Button.FunctionKey == Keys.F1)
    {
        Console.WriteLine(e.Button.Name);
    }

    // イベントパラメータから押下されたキーのNameプロパティを取得します。
    if (e.Button.Name == "functionKeyButton2")
    {
        Console.WriteLine(e.Button.Name);
    }
}
2重クリックの防止
GcFunctionKeyコントロールは、GcButton コントロールと同様にコントロールの2重クリック防止機能を搭載しています。

これらの詳細については、GcButton コントロールの「2重クリックの防止」を参照してください。

関連トピック

 

 


© MESCIUS inc. All rights reserved.