作成日: 2014/12/04 最終更新日: 2014/12/04
文書種別
制限事項
詳細
カスタムスタイルを1つ用意し、複数列にそのスタイルを適用しているとき、各列のEditorプロパティにそれぞれ異なるエディタを設定しても、すべての列に同じエディタが適用されます。
例として、次のような設定を行った場合に、全ての列に同じカスタムエディタが適用されます。
◎サンプルコード(VB)
この動作は仕様です。
異なる列に同じスタイルを適用すると、すべてのスタイルの要素が引き継がれます。
異なるスタイルを適用する場合は、別途スタイルを用意するか、スタイルの適用前に設定を変更する必要があります。
例として、次のような設定を行った場合に、全ての列に同じカスタムエディタが適用されます。
◎サンプルコード(VB)
Dim cs As C1.Win.C1FlexGrid.CellStyle = C1FlexGrid1.Styles.Add("CustomStyle")
cs.BackColor = Color.Yellow
C1FlexGrid1.Cols(1).Style = cs
C1FlexGrid1.Cols(1).Editor = New TextBox()
C1FlexGrid1.Cols(2).Style = cs
C1FlexGrid1.Cols(2).Editor = New DateTimePicker()
◎サンプルコード(C#)cs.BackColor = Color.Yellow
C1FlexGrid1.Cols(1).Style = cs
C1FlexGrid1.Cols(1).Editor = New TextBox()
C1FlexGrid1.Cols(2).Style = cs
C1FlexGrid1.Cols(2).Editor = New DateTimePicker()
C1.Win.C1FlexGrid.CellStyle cs = this.c1FlexGrid1.Styles.Add("CustomStyle");
cs.BackColor = Color.Yellow;
c1FlexGrid1.Cols[1].Style = cs;
c1FlexGrid1.Cols[1].Editor = new TextBox();
c1FlexGrid1.Cols[2].Style = cs;
c1FlexGrid1.Cols[2].Editor = new DateTimePicker();
cs.BackColor = Color.Yellow;
c1FlexGrid1.Cols[1].Style = cs;
c1FlexGrid1.Cols[1].Editor = new TextBox();
c1FlexGrid1.Cols[2].Style = cs;
c1FlexGrid1.Cols[2].Editor = new DateTimePicker();
この動作は仕様です。
異なる列に同じスタイルを適用すると、すべてのスタイルの要素が引き継がれます。
異なるスタイルを適用する場合は、別途スタイルを用意するか、スタイルの適用前に設定を変更する必要があります。
回避方法
セルの編集開始前にセルの位置によって異なるカスタムエディタを適用します。
◎サンプルコード(VB)
◎サンプルコード(C#)
◎サンプルコード(VB)
Private Sub C1FlexGrid1_StartEdit(sender As System.Object, e As C1.Win.C1FlexGrid.RowColEventArgs) Handles C1FlexGrid1.StartEdit
Select Case e.Col
Case 1
C1FlexGrid1.Editor = New TextBox()
Case 2
C1FlexGrid1.Editor = New DateTimePicker()
End Select
End Sub
Select Case e.Col
Case 1
C1FlexGrid1.Editor = New TextBox()
Case 2
C1FlexGrid1.Editor = New DateTimePicker()
End Select
End Sub
◎サンプルコード(C#)
private void c1FlexGrid1_StartEdit(object sender, RowColEventArgs e)
{
switch (e.Col)
{
case 1:
c1FlexGrid1.Editor = new TextBox();
break;
case 2:
c1FlexGrid1.Editor = new DateTimePicker();
break;
}
}
{
switch (e.Col)
{
case 1:
c1FlexGrid1.Editor = new TextBox();
break;
case 2:
c1FlexGrid1.Editor = new DateTimePicker();
break;
}
}
旧文書番号
81087