PowerTools PlusPak for Windows Forms 8.0J
イベントとキーボード操作

GcSplitButtonコントロールのイベントとキーボード操作について、以下に解説します。

イベント
GcSplitButton コントロールのボタン領域をクリックすると、標準のClickイベントの直後に ButtonClick イベントが発生します。ドロップダウン領域をクリックしてドロップダウン項目を操作したときは、以下のイベントが順次に発生します。ButtonClick と DropDownItemClicked イベントを使い分けることで、ボタン領域とドロップダウン領域に別々の処理を実装できます。

  1. DropDownOpening
  2. DropDownOpened
  3. Click
  4. DropDownItemClicked
  5. DropDownClosing
  6. DropDownClosed

以下は、ButtonClick と DropDownItemClicked イベントを利用して、GcSplitButton コントロールにカスタム処理を実装する例を示します。
' ドロップダウン項目を作成します。 
Dim ddItem1 As New ToolStripMenuItem
Dim ddItem2 As New ToolStripMenuItem

' ドロップダウン項目を設定します。 
ddItem1.Name = "SendToRecycleBin"
ddItem1.Text = "ゴミ箱に移動します"
ddItem2.Name = "DeletePermanently"
ddItem2.Text = "完全に削除します"

' ドロップダウン項目を ContextMenuStrip に追加します。 
ContextMenuStrip1.Items.Clear()
ContextMenuStrip1.Items.AddRange(New ToolStripItem() {ddItem1, ddItem2, ddSeparator1, ddItem3})

' ContextMenuStrip を GcSplitButton に関連付けます。 
GcSplitButton1.DropDown = ContextMenuStrip1
GcSplitButton1.Text = "削  除"

Private Sub GcSplitButton1_ButtonClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GcSplitButton1.ButtonClick
        ' ファイルをゴミ箱に移動します。
        My.Computer.FileSystem.DeleteFile("D:\test.txt", FileIO.UIOption.AllDialogs, _
                FileIO.RecycleOption.SendToRecycleBin, FileIO.UICancelOption.DoNothing)
End Sub

Private Sub GcSplitButton1_DropDownItemClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles GcSplitButton1.DropDownItemClicked
    Select Case e.ClickedItem.Name
        Case "SendToRecycleBin"
            ' ファイルをゴミ箱に移動します。
            My.Computer.FileSystem.DeleteFile("D:\test.txt", FileIO.UIOption.AllDialogs, _
                    FileIO.RecycleOption.SendToRecycleBin, FileIO.UICancelOption.DoNothing)
        Case "DeletePermanently"
            ' ファイルを完全に削除します。
            My.Computer.FileSystem.DeleteFile("D:\test.txt", FileIO.UIOption.AllDialogs, _
                    FileIO.RecycleOption.DeletePermanently, FileIO.UICancelOption.DoNothing)
    End Select
End Sub
using Microsoft.VisualBasic.FileIO;
// 参照にMicrosoft.VisualBasic.dllが追加されている必要があります
private void form1_Load(object sender, EventArgs e)
{
    // ドロップダウン項目を作成します。 
    ToolStripMenuItem ddItem1 = new ToolStripMenuItem();
    ToolStripMenuItem ddItem2 = new ToolStripMenuItem();

    // ドロップダウン項目を設定します。 
    ddItem1.Name = "SendToRecycleBin";
    ddItem1.Text = "ゴミ箱に移動します";
    ddItem2.Name = "DeletePermanently";
    ddItem2.Text = "完全に削除します";

    // ドロップダウン項目を ContextMenuStrip に追加します。 
    contextMenuStrip1.Items.Clear();
    contextMenuStrip1.Items.AddRange(new ToolStripItem[] {ddItem1, ddItem2});

    // ContextMenuStrip を GcSplitButton に関連付けます。 
    gcSplitButton1.DropDown = contextMenuStrip1;
    gcSplitButton1.Text = "削  除";
}
        
private void gcSplitButton1_ButtonClick(object sender, System.EventArgs e)
{
    // ファイルをゴミ箱に移動します。
    FileSystem.DeleteFile(@"D:\test.txt", UIOption.AllDialogs, 
        RecycleOption.SendToRecycleBin, UICancelOption.DoNothing);
}

private void gcSplitButton1_DropDownItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
    switch (e.ClickedItem.Name)
    {
        case "SendToRecycleBin":
        // ファイルをゴミ箱に移動します。
            FileSystem.DeleteFile(@"D:\test.txt", UIOption.AllDialogs, 
                RecycleOption.SendToRecycleBin, UICancelOption.DoNothing);
            break;
        case "DeletePermanently":
        // ファイルを完全に削除します。
            FileSystem.DeleteFile(@"D:\test.txt", UIOption.AllDialogs, 
                RecycleOption.DeletePermanently, UICancelOption.DoNothing);
            break;
    }
}


キーボード操作
キーボードを用いて GcSplitButton コントロールを操作することも可能です。フォーカスが GcSplitButton コントロールにあるとき、[Space]キーを押すとボタン領域が押下されます。また、[Alt] + [↓]を使うと、ドロップダウンが開きます。[Tab] または矢印キーを使って項目を移動し、[Enter] キーで選択してドロップダウンを閉じます。

   
参照