MESCIUS MultiRow for Windows Forms 12.0J
行とセルのスタイル


行のスタイルの設定
行のスタイルを設定する場合、Row.DefaultCellStyleプロパティを使用します。このプロパティを使用すると、行ごとに既定のスタイルを設定することができます。
GcMultiRow1.Rows(1).DefaultCellStyle.BackColor = Color.Yellow
GcMultiRow1.Rows(2).DefaultCellStyle.BackColor = Color.Blue
gcMultiRow1.Rows[1].DefaultCellStyle.BackColor = Color.Yellow;
gcMultiRow1.Rows[2].DefaultCellStyle.BackColor = Color.Blue;
セルのスタイルの設定
セルのスタイルを設定する場合、Cell.Styleプロパティを使用します。このプロパティを使用すると、セルごとにスタイルを設定することができます。Cell.Styleプロパティは、Row.DefaultCellStyleプロパティより適用される優先順位が高くなります。
GcMultiRow1.Rows(1).Cells(1).Style.BackColor = Color.Azure
GcMultiRow1.Rows(1).Cells(2).Style.BackColor = Color.Lavender
gcMultiRow1.Rows[1].Cells[1].Style.BackColor = Color.Azure;
gcMultiRow1.Rows[1].Cells[2].Style.BackColor = Color.Lavender;
行選択時に選択禁止、無効なセルも同じスタイルに設定する
セルの選択禁止セルの無効表示が設定されている行を選択すると、選択禁止や無効表示のセルはハイライト表示されません。


選択禁止や無効表示のセルに対して、GcMultiRow.SelectionChangedイベントで、背景色、文字色を設定することで、他のセルと同じようにハイライト表示することができます。

Imports GrapeCity.Win.MultiRow

Private Sub GcMultiRow1_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GcMultiRow1.SelectionChanged
    Dim GcMultiRow1 As GcMultiRow = TryCast(sender, GcMultiRow)

    For r As Integer = 0 To GcMultiRow1.Rows.Count - 1
        If GcMultiRow1.Rows(r).Selected Then
            ' 行が選択されている場合、選択禁止または無効なセルのスタイルを変更する 
            For c As Integer = 0 To GcMultiRow1.Rows(r).Cells.Count - 1
                If GcMultiRow1.Rows(r).Cells(c).Selectable = False Then
                    GcMultiRow1.Rows(r).Cells(c).Style.BackColor = SystemColors.Highlight
                    GcMultiRow1.Rows(r).Cells(c).Style.ForeColor = SystemColors.HighlightText
                End If
                If GcMultiRow1.Rows(r).Cells(c).Enabled = False Then
                    GcMultiRow1.Rows(r).Cells(c).Style.DisabledBackColor = SystemColors.Highlight
                    GcMultiRow1.Rows(r).Cells(c).Style.DisabledForeColor = SystemColors.HighlightText
                End If
            Next
        Else
            ' 行が選択されていない場合、選択禁止または無効なセルのスタイルを元に戻す 
            For c As Integer = 0 To GcMultiRow1.Rows(r).Cells.Count - 1
                If GcMultiRow1.Rows(r).Cells(c).Selectable = False Then
                    GcMultiRow1.Rows(r).Cells(c).Style.BackColor = Color.Empty
                    GcMultiRow1.Rows(r).Cells(c).Style.ForeColor = Color.Empty
                End If
                If GcMultiRow1.Rows(r).Cells(c).Enabled = False Then
                    GcMultiRow1.Rows(r).Cells(c).Style.DisabledBackColor = Color.Empty
                    GcMultiRow1.Rows(r).Cells(c).Style.DisabledForeColor = Color.Empty
                End If
            Next
        End If
    Next
End Sub
using GrapeCity.Win.MultiRow;

private void gcMultiRow1_SelectionChanged(object sender, EventArgs e)
{
    GcMultiRow gcMultiRow = sender as GcMultiRow;

    for (int r = 0; r < gcMultiRow.Rows.Count; r++)
    {
        if (gcMultiRow.Rows[r].Selected)
        {
            // 行が選択されている場合、選択禁止または無効なセルのスタイルを変更する
            for (int c = 0; c < gcMultiRow1.Rows[r].Cells.Count; c++)
            {
                if (!gcMultiRow.Rows[r].Cells[c].Selectable)
                {
                    gcMultiRow.Rows[r].Cells[c].Style.BackColor = SystemColors.Highlight;
                    gcMultiRow.Rows[r].Cells[c].Style.ForeColor = SystemColors.HighlightText;
                }
                if( !gcMultiRow.Rows[r].Cells[c].Enabled)
                {
                    gcMultiRow.Rows[r].Cells[c].Style.DisabledBackColor = SystemColors.Highlight;
                    gcMultiRow.Rows[r].Cells[c].Style.DisabledForeColor = SystemColors.HighlightText;
                }
            }
        }
        else
        {
            // 行が選択されていない場合、選択禁止または無効なセルのスタイルを元に戻す
            for (int c = 0; c < gcMultiRow1.Rows[r].Cells.Count; c++)
            {
                if (!gcMultiRow.Rows[r].Cells[c].Selectable)
                {
                    gcMultiRow.Rows[r].Cells[c].Style.BackColor = Color.Empty;
                    gcMultiRow.Rows[r].Cells[c].Style.ForeColor = Color.Empty;
                }
                if (!gcMultiRow.Rows[r].Cells[c].Enabled)
                {
                    gcMultiRow.Rows[r].Cells[c].Style.DisabledBackColor = Color.Empty;
                    gcMultiRow.Rows[r].Cells[c].Style.DisabledForeColor = Color.Empty;
                }
            }
        }
    }
}
   
関連トピック

 

 


© MESCIUS inc. All rights reserved.