子グリッドを持つ FlexGrid である ComponentOne DataTree を使用しています。親グリッドには、チェックボックスである「選択」列と読み取り専用の別の列の 2 つの列があります。子グリッドには 5 つの列があります。最初はチェックボックスで、残りの 4 つは読み取り専用です。デフォルトでは、読み取り専用の列は灰色で表示されます。グリッドのデータ ソースである DataTable 列を ReadOnly に設定します。ヘッダー以外の列の背景をデフォルトで白にしたい。どちらのグリッドも更新されません。
スタイルをメンバー変数として定義し、Initialize メソッドでスタイルを作成します。
C1.Win.C1FlexGrid.CellStyle defaultRowStyle;
private void InitializeControls()
{
txtWorkZone.Enabled = true;
txtWorkZone.Focus();
defaultRowStyle = c1flxdatatreeCasePick.Styles.Add("DefaultRowStyle");
defaultRowStyle.BackColor = Color.White;
}
これを設定する OwnerDrawCell メソッドは次のとおりです。
private void c1flxdatatreeCasePick_OwnerDrawCell(object sender, OwnerDrawCellEventArgs e)
{
C1FlexDataTree grid = sender as C1FlexDataTree;
if (grid == null || grid.DataSource == null)
return;
if(e.Row > 0)
grid.Rows[e.Row].Style = grid.Styles["DefaultRowStyle"];
//Get the child grid
C1FlexDataTree childGrid = grid.Rows[e.Row].UserData as C1FlexDataTree;
if (childGrid != null)
{
if(e.Row > 0)
childGrid.Rows[e.Row].Style = grid.Styles["DefaultRowStyle"];
}
}
グリッドが行スタイル設定を取得しないのはなぜですか?
ありがとうグロリア