作成日: 2013/06/25 最終更新日: 2013/06/25
文書種別
使用方法
詳細
セルにボタンを表示するには、CellFactoryを継承するクラスを作成してCreateCellContentメソッドをオーバーライドし、第2引数のBorder.Childプロパティにボタンを設定します。
下記のコードでは、ボタンクリック時にメッセージボックスでボタンの行番号を表示します。
◎サンプルコード(Visual Basic)
◎サンプルコード(C#)
下記のコードでは、ボタンクリック時にメッセージボックスでボタンの行番号を表示します。
◎サンプルコード(Visual Basic)
Imports C1.WPF.FlexGrid
Public Sub New()
:
C1FlexGrid1.CellFactory = New MyCellFactory
End Sub
Public Class MyCellFactory
Inherits CellFactory
Public Overrides Sub CreateCellContent(grid As C1FlexGrid, bdr As Border, range As CellRange)
If range.Column = grid.Columns.Count - 1 Then
' 最終列にボタンを表示します。
Dim btn As New Button()
btn.Content = "ボタン"
AddHandler btn.Click, Sub(s1, e1) MessageBox.Show(range.Row.ToString() + " 行目")
bdr.Child = btn
Else
MyBase.CreateCellContent(grid, bdr, range)
End If
End Sub
End Class
Public Sub New()
:
C1FlexGrid1.CellFactory = New MyCellFactory
End Sub
Public Class MyCellFactory
Inherits CellFactory
Public Overrides Sub CreateCellContent(grid As C1FlexGrid, bdr As Border, range As CellRange)
If range.Column = grid.Columns.Count - 1 Then
' 最終列にボタンを表示します。
Dim btn As New Button()
btn.Content = "ボタン"
AddHandler btn.Click, Sub(s1, e1) MessageBox.Show(range.Row.ToString() + " 行目")
bdr.Child = btn
Else
MyBase.CreateCellContent(grid, bdr, range)
End If
End Sub
End Class
◎サンプルコード(C#)
using C1.WPF.FlexGrid;
public MainPage()
{
:
c1FlexGrid1.CellFactory = new MyCellFactory();
}
public class MyCellFactory : CellFactory
{
public override void CreateCellContent(C1FlexGrid grid, Border bdr, CellRange range)
{
if (range.Column == grid.Columns.Count - 1)
{
// 最終列にボタンを表示します。
Button btn = new Button();
btn.Content = "ボタン";
btn.Click += (s1, e1) => MessageBox.Show(range.Row.ToString() + " 行目");
bdr.Child = btn;
}
else
{
base.CreateCellContent(grid, bdr, range);
}
}
}
public MainPage()
{
:
c1FlexGrid1.CellFactory = new MyCellFactory();
}
public class MyCellFactory : CellFactory
{
public override void CreateCellContent(C1FlexGrid grid, Border bdr, CellRange range)
{
if (range.Column == grid.Columns.Count - 1)
{
// 最終列にボタンを表示します。
Button btn = new Button();
btn.Content = "ボタン";
btn.Click += (s1, e1) => MessageBox.Show(range.Row.ToString() + " 行目");
bdr.Child = btn;
}
else
{
base.CreateCellContent(grid, bdr, range);
}
}
}
旧文書番号
80196