FlexGrid for WinForms
セルボタン
> エディタ > セルボタン

セルボタンエディタとは、省略符ボタンを含むセルのことです。1 回のボタンクリックで操作を完了したりダイアログを開く必要がある場合に、このエディタを使用します。通常、そのようなダイアログには、ユーザーが選択できる複数のオプションや設定が含まれています。

デフォルトのセルボタン セルボタンとテキスト カスタム画像を含むセルボタン
セルボタン テキストボックスとセルボタン カスタムセルボタン

セルボタンの表示

FlexGrid でセルボタンを表示するには、ComboList プロパティを省略符「...」に設定します。また、省略符ボタンの前にパイプ文字を使用することで、ユーザーが文字を入力できるテキストボックスを省略符と共に表示できます。ユーザーがセルボタンをクリックすると、CellButtonClick イベントが発生します。このイベントをキャプチャして、必要な操作を実装したり、目的のダイアログを表示することができます。 

デフォルトでは、セルが編集モードになったときにセルボタンが表示されます。ただし、ShowButtons プロパティを Always に設定すると、非編集モードでもセルボタンが表示されます。

WinForms FlexGrid の列にセルボタンを表示するには、次のコードを使用します。

 // Mark列のComboListプロパティを設定して、セルボタンを表示するようにします
 c1flexGrid1.Cols["Mark"].ComboList = "...";
        
 // セルボタンを常に表示できるようにします
 c1flexGrid1.Cols["Mark"].ShowButtons = ShowButtonsEnum.Always;

 // エンドユーザーがセルボタンをクリックしたときに処理します
 c1flexGrid1.CellButtonClick += C1flexGrid1_CellButtonClick;                         
' Mark列のComboListプロパティを設定して、セルボタンを表示するようにします
c1flexGrid1.Cols("Mark").ComboList = "..."

' セルボタンを常に表示できるようにします
c1flexGrid1.Cols("Mark").ShowButtons = ShowButtonsEnum.Always

' エンドユーザーがセルボタンをクリックしたときに処理します
c1flexGrid1.CellButtonClick += C1flexGrid1_CellButtonClick 

ComboList プロパティは、設計時に[コンボリスト]ダイアログを使用して設定することもできます。[コンボリスト]ダイアログにアクセスするには、次の手順に従います。

  1. エディタを設定する列の列タスクメニューを開きます。
  2. [コンボリスト]オプションに移動して、フィールドの右側にある省略符ボタンをクリックします。
  3. [コンボリスト]ダイアログが開きます。このダイアログで、新しい行にオプション値を 1 つずつ指定できます。
  4. また、これらの値を省略符ボタンまたはテキストボックスと省略符ボタンのどちらで表示するかを選択できます。 [ドロップダウンリスト][ドロップダウンコンボ]を作成するオプションもあります。
    [コンボリスト]ダイアログ

次の例では、セルボタンをクリックすると、現在の行の背景色と前景色が変わります。同様に、CellButtonClick イベントで目的の操作を実行できます。

セルボタン

private void C1flexGrid1_CellButtonClick(object sender, RowColEventArgs e)
  {            
    // 次のコードは、色を変更して現在の行をマークします
       if (c1flexGrid1.Rows[e.Row].StyleDisplay.BackColor == Color.FromName("Window"))
     {
           c1flexGrid1.Rows[e.Row].StyleNew.BackColor = Color.Green;
           c1flexGrid1.Rows[e.Row].StyleNew.ForeColor = Color.White;
       else
           c1flexGrid1.Rows[e.Row].StyleNew.BackColor = Color.FromName("Window");
           c1flexGrid1.Rows[e.Row].StyleNew.ForeColor = Color.FromName("WindowText");
     }
   }                        
Private Sub C1flexGrid1_CellButtonClick(ByVal sender As Object, ByVal e As RowColEventArgs)
    ' 次のコードは、色を変更して現在の行をマークします
    If c1flexGrid1.Rows(e.Row).StyleDisplay.BackColor Is Color.FromName("Window") Then
        c1flexGrid1.Rows(e.Row).StyleNew.BackColor = Color.Green
        c1flexGrid1.Rows(e.Row).StyleNew.ForeColor = Color.White
    
    Else 
    
        c1flexGrid1.Rows(e.Row).StyleNew.BackColor = Color.FromName("Window")
        c1flexGrid1.Rows(e.Row).StyleNew.ForeColor = Color.FromName("WindowText")
    End If
End Sub          

セルボタンの画像の変更

デフォルトでは、セルボタンには省略符が表示されます。ただし、CellButtonImage プロパティを使用して、セルボタンの画像を変更できます。

次のコードに示すように、WinForms FlexGrid のセルボタンの画像を設定します。

// CellButtonImageプロパティを設定して、セルボタンの画像を定義します
Image imgCellBtn = new Bitmap("../../Resources/Images/button.png");
c1flexGrid1.CellButtonImage = imgCellBtn;                        
' CellButtonImageプロパティを設定して、セルボタンの画像を定義します
Dim imgCellBtn As Image = New Bitmap("../../Resources/Images/button.png")
c1flexGrid1.CellButtonImage = imgCellBtn