作成日: 2019/05/14 最終更新日: 2019/05/14
文書種別
使用方法
詳細
ForeColorを使用して任意のセルの文字色を指定しても、行選択時には、Highlightスタイルで設定された文字色が優先的に使用され、指定したForeColorでは表示されません。
これをForeColorで指定した色で表示させるようにするには、以下の2種類のスタイルを作成し、OwnerDrawCellイベント内で、選択状態に応じてセルのスタイルを切り替えます。
(A) Normalスタイルと同じ背景色を持ち、前景色を任意の色に指定したスタイル
(B) Highlightスタイルと同じ背景色を持ち、前景色を任意の色に指定したスタイル
以下に、セル(2,2)の文字色を赤で表示するサンプルコードを記載します。
◎サンプルコード(VB)
◎サンプルコード(C#)
これをForeColorで指定した色で表示させるようにするには、以下の2種類のスタイルを作成し、OwnerDrawCellイベント内で、選択状態に応じてセルのスタイルを切り替えます。
(A) Normalスタイルと同じ背景色を持ち、前景色を任意の色に指定したスタイル
(B) Highlightスタイルと同じ背景色を持ち、前景色を任意の色に指定したスタイル
以下に、セル(2,2)の文字色を赤で表示するサンプルコードを記載します。
◎サンプルコード(VB)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim i, j As Integer
For i = 0 To C1FlexGrid1.Rows.Count - 1
For j = 0 To C1FlexGrid1.Cols.Count - 1
C1FlexGrid1(i, j) = (i.ToString + (", " + j.ToString))
Next
Next
Dim cs1 As C1.Win.C1FlexGrid.CellStyle = C1FlexGrid1.Styles.Add("NormalStyle")
cs1.BackColor = C1FlexGrid1.Styles.Normal.BackColor
cs1.ForeColor = System.Drawing.Color.Red
Dim cs2 As C1.Win.C1FlexGrid.CellStyle = C1FlexGrid1.Styles.Add("SelectedStyle")
cs2.BackColor = C1FlexGrid1.Styles.Highlight.BackColor
cs2.ForeColor = System.Drawing.Color.Red
C1FlexGrid1.SelectionMode = C1.Win.C1FlexGrid.SelectionModeEnum.Row
C1FlexGrid1.SetCellStyle(2, 2, "NormalStyle")
C1FlexGrid1.DrawMode = C1.Win.C1FlexGrid.DrawModeEnum.OwnerDraw
End Sub
Private Sub C1FlexGrid1_OwnerDrawCell(sender As Object, e As C1.Win.C1FlexGrid.OwnerDrawCellEventArgs) Handles C1FlexGrid1.OwnerDrawCell
If e.Row = 2 AndAlso e.Col = 2 Then
If C1FlexGrid1.IsCellSelected(2, 2) = True Then
e.Style = C1FlexGrid1.Styles("SelectedStyle")
Else
e.Style = C1FlexGrid1.Styles("NormalStyle")
End If
End If
End Sub
Dim i, j As Integer
For i = 0 To C1FlexGrid1.Rows.Count - 1
For j = 0 To C1FlexGrid1.Cols.Count - 1
C1FlexGrid1(i, j) = (i.ToString + (", " + j.ToString))
Next
Next
Dim cs1 As C1.Win.C1FlexGrid.CellStyle = C1FlexGrid1.Styles.Add("NormalStyle")
cs1.BackColor = C1FlexGrid1.Styles.Normal.BackColor
cs1.ForeColor = System.Drawing.Color.Red
Dim cs2 As C1.Win.C1FlexGrid.CellStyle = C1FlexGrid1.Styles.Add("SelectedStyle")
cs2.BackColor = C1FlexGrid1.Styles.Highlight.BackColor
cs2.ForeColor = System.Drawing.Color.Red
C1FlexGrid1.SelectionMode = C1.Win.C1FlexGrid.SelectionModeEnum.Row
C1FlexGrid1.SetCellStyle(2, 2, "NormalStyle")
C1FlexGrid1.DrawMode = C1.Win.C1FlexGrid.DrawModeEnum.OwnerDraw
End Sub
Private Sub C1FlexGrid1_OwnerDrawCell(sender As Object, e As C1.Win.C1FlexGrid.OwnerDrawCellEventArgs) Handles C1FlexGrid1.OwnerDrawCell
If e.Row = 2 AndAlso e.Col = 2 Then
If C1FlexGrid1.IsCellSelected(2, 2) = True Then
e.Style = C1FlexGrid1.Styles("SelectedStyle")
Else
e.Style = C1FlexGrid1.Styles("NormalStyle")
End If
End If
End Sub
◎サンプルコード(C#)
private void Form1_Load(object sender, EventArgs e)
{
for (int i = 0; i < c1FlexGrid1.Rows.Count; i++)
{
for (int j = 0; j < c1FlexGrid1.Cols.Count; j++)
{
c1FlexGrid1[i, j] = i.ToString() + ", " + j.ToString();
}
}
C1.Win.C1FlexGrid.CellStyle cs1 = c1FlexGrid1.Styles.Add("NormalStyle");
cs1.BackColor = c1FlexGrid1.Styles.Normal.BackColor;
cs1.ForeColor = System.Drawing.Color.Red;
C1.Win.C1FlexGrid.CellStyle cs2 = c1FlexGrid1.Styles.Add("SelectedStyle");
cs2.BackColor = c1FlexGrid1.Styles.Highlight.BackColor;
cs2.ForeColor = System.Drawing.Color.Red;
c1FlexGrid1.SelectionMode = C1.Win.C1FlexGrid.SelectionModeEnum.Row;
c1FlexGrid1.SetCellStyle(2, 2, "NormalStyle");
c1FlexGrid1.DrawMode = C1.Win.C1FlexGrid.DrawModeEnum.OwnerDraw;
}
private void c1FlexGrid1_OwnerDrawCell(object sender, C1.Win.C1FlexGrid.OwnerDrawCellEventArgs e)
{
if (e.Row == 2 && e.Col == 2)
{
if (c1FlexGrid1.IsCellSelected(2, 2))
e.Style = c1FlexGrid1.Styles["SelectedStyle"];
else
e.Style = c1FlexGrid1.Styles["NormalStyle"];
}
}
{
for (int i = 0; i < c1FlexGrid1.Rows.Count; i++)
{
for (int j = 0; j < c1FlexGrid1.Cols.Count; j++)
{
c1FlexGrid1[i, j] = i.ToString() + ", " + j.ToString();
}
}
C1.Win.C1FlexGrid.CellStyle cs1 = c1FlexGrid1.Styles.Add("NormalStyle");
cs1.BackColor = c1FlexGrid1.Styles.Normal.BackColor;
cs1.ForeColor = System.Drawing.Color.Red;
C1.Win.C1FlexGrid.CellStyle cs2 = c1FlexGrid1.Styles.Add("SelectedStyle");
cs2.BackColor = c1FlexGrid1.Styles.Highlight.BackColor;
cs2.ForeColor = System.Drawing.Color.Red;
c1FlexGrid1.SelectionMode = C1.Win.C1FlexGrid.SelectionModeEnum.Row;
c1FlexGrid1.SetCellStyle(2, 2, "NormalStyle");
c1FlexGrid1.DrawMode = C1.Win.C1FlexGrid.DrawModeEnum.OwnerDraw;
}
private void c1FlexGrid1_OwnerDrawCell(object sender, C1.Win.C1FlexGrid.OwnerDrawCellEventArgs e)
{
if (e.Row == 2 && e.Col == 2)
{
if (c1FlexGrid1.IsCellSelected(2, 2))
e.Style = c1FlexGrid1.Styles["SelectedStyle"];
else
e.Style = c1FlexGrid1.Styles["NormalStyle"];
}
}
関連情報
旧文書番号
83962