作成日: 2019/09/25 最終更新日: 2019/09/25
文書種別
使用方法
詳細
列ヘッダ/行ヘッダで、同じ値を持つセルをマージするには、AllowMergingプロパティをColumnHeaders、RowHeaders、またはAllHeadersやAllに設定し、ColumnHeaders/RowHeadersクラスのRowCol.AllowMergingプロパティをTrueに設定します。
また、任意のヘッダセルをマージするする場合は、IMergeManagerインタフェースを実装したクラスを作成して、マージしたいヘッダセルの範囲を指定し、MergeManagerプロパティに設定します。
◎サンプルコード(Visual Basic)
◎サンプルコード(C#)
また、任意のヘッダセルをマージするする場合は、IMergeManagerインタフェースを実装したクラスを作成して、マージしたいヘッダセルの範囲を指定し、MergeManagerプロパティに設定します。
◎サンプルコード(Visual Basic)
Imports C1.WPF.FlexGrid
Class MainWindow
Private Sub Window_Loaded(sender As Object, e As RoutedEventArgs)
For i As Integer = 0 To 10
C1FlexGrid1.Columns.Add(New Column)
C1FlexGrid1.Rows.Add(New Row)
Next
'同じ値を持つセルをマージする
C1FlexGrid1.AllowMerging = AllowMerging.ColumnHeaders Or AllowMerging.RowHeaders
C1FlexGrid1.ColumnHeaders.Rows(0).AllowMerging = True
C1FlexGrid1.RowHeaders.Columns(0).AllowMerging = True
C1FlexGrid1.ColumnHeaders(0, 0) = "ColumnHeader"
C1FlexGrid1.ColumnHeaders(0, 1) = "ColumnHeader"
C1FlexGrid1.RowHeaders(0, 0) = "RowHeader"
C1FlexGrid1.RowHeaders(1, 0) = "RowHeader"
'任意のセルをマージする
C1FlexGrid1.MergeManager = New MyMergeManager
End Sub
End Class
'IMergeManagerインタフェースを実装したクラスを作成してマージしたいセル範囲を指定
Class MyMergeManager
Implements IMergeManager
Public Function GetMergedRange(grid As C1FlexGrid, cellType As CellType, rg As CellRange) As CellRange Implements IMergeManager.GetMergedRange
'列ヘッダを対象
If (cellType = CellType.ColumnHeader) Then
If rg.Column >= 0 AndAlso rg.Column <= 1 AndAlso rg.Row >= 0 AndAlso rg.Row <= 0 Then
rg.Column = 0
rg.Column2 = 1
rg.Row = 0
rg.Row2 = 0
End If
End If
Return rg
End Function
End Class
Class MainWindow
Private Sub Window_Loaded(sender As Object, e As RoutedEventArgs)
For i As Integer = 0 To 10
C1FlexGrid1.Columns.Add(New Column)
C1FlexGrid1.Rows.Add(New Row)
Next
'同じ値を持つセルをマージする
C1FlexGrid1.AllowMerging = AllowMerging.ColumnHeaders Or AllowMerging.RowHeaders
C1FlexGrid1.ColumnHeaders.Rows(0).AllowMerging = True
C1FlexGrid1.RowHeaders.Columns(0).AllowMerging = True
C1FlexGrid1.ColumnHeaders(0, 0) = "ColumnHeader"
C1FlexGrid1.ColumnHeaders(0, 1) = "ColumnHeader"
C1FlexGrid1.RowHeaders(0, 0) = "RowHeader"
C1FlexGrid1.RowHeaders(1, 0) = "RowHeader"
'任意のセルをマージする
C1FlexGrid1.MergeManager = New MyMergeManager
End Sub
End Class
'IMergeManagerインタフェースを実装したクラスを作成してマージしたいセル範囲を指定
Class MyMergeManager
Implements IMergeManager
Public Function GetMergedRange(grid As C1FlexGrid, cellType As CellType, rg As CellRange) As CellRange Implements IMergeManager.GetMergedRange
'列ヘッダを対象
If (cellType = CellType.ColumnHeader) Then
If rg.Column >= 0 AndAlso rg.Column <= 1 AndAlso rg.Row >= 0 AndAlso rg.Row <= 0 Then
rg.Column = 0
rg.Column2 = 1
rg.Row = 0
rg.Row2 = 0
End If
End If
Return rg
End Function
End Class
◎サンプルコード(C#)
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
for (int i = 0; i < 10; i++)
{
c1FlexGrid1.Columns.Add(new Column());
c1FlexGrid1.Rows.Add(new Row());
}
//同じ値を持つセルをマージする
c1FlexGrid1.AllowMerging = AllowMerging.ColumnHeaders | AllowMerging.RowHeaders;
c1FlexGrid1.ColumnHeaders.Rows[0].AllowMerging = true;
c1FlexGrid1.RowHeaders.Columns[0].AllowMerging = true;
c1FlexGrid1.ColumnHeaders[0, 0] = "ColumnHeader";
c1FlexGrid1.ColumnHeaders[0, 1] = "ColumnHeader";
c1FlexGrid1.RowHeaders[0, 0] = "RowHeader";
c1FlexGrid1.RowHeaders[1, 0] = "RowHeader";
//任意のセルをマージする
c1FlexGrid1.MergeManager = new MyMergeManager();
}
}
//IMergeManagerインタフェースを実装したクラスを作成してマージしたいセル範囲を指定
class MyMergeManager : IMergeManager
{
public CellRange GetMergedRange(C1FlexGrid grid, CellType cellType, CellRange rg)
{
//列ヘッダを対象
if (cellType == CellType.ColumnHeader)
{
if (rg.Column >= 0 && rg.Column <= 1 && rg.Row >= 0 && rg.Row <= 0)
{
rg.Column = 0;
rg.Column2 = 1;
rg.Row = 0;
rg.Row2 = 0;
}
}
return rg;
}
}
{
public MainWindow()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
for (int i = 0; i < 10; i++)
{
c1FlexGrid1.Columns.Add(new Column());
c1FlexGrid1.Rows.Add(new Row());
}
//同じ値を持つセルをマージする
c1FlexGrid1.AllowMerging = AllowMerging.ColumnHeaders | AllowMerging.RowHeaders;
c1FlexGrid1.ColumnHeaders.Rows[0].AllowMerging = true;
c1FlexGrid1.RowHeaders.Columns[0].AllowMerging = true;
c1FlexGrid1.ColumnHeaders[0, 0] = "ColumnHeader";
c1FlexGrid1.ColumnHeaders[0, 1] = "ColumnHeader";
c1FlexGrid1.RowHeaders[0, 0] = "RowHeader";
c1FlexGrid1.RowHeaders[1, 0] = "RowHeader";
//任意のセルをマージする
c1FlexGrid1.MergeManager = new MyMergeManager();
}
}
//IMergeManagerインタフェースを実装したクラスを作成してマージしたいセル範囲を指定
class MyMergeManager : IMergeManager
{
public CellRange GetMergedRange(C1FlexGrid grid, CellType cellType, CellRange rg)
{
//列ヘッダを対象
if (cellType == CellType.ColumnHeader)
{
if (rg.Column >= 0 && rg.Column <= 1 && rg.Row >= 0 && rg.Row <= 0)
{
rg.Column = 0;
rg.Column2 = 1;
rg.Row = 0;
rg.Row2 = 0;
}
}
return rg;
}
}
旧文書番号
84508