-1

その行のチェックボックスの値がチェックされていない行を無効にする必要があるデータグリッドビューがあります。コードは次のとおりです。

        foreach (DataGridViewRow row in catView.Rows)
        {
            if (row.Cells[1].FormattedValue.ToString() != "true")
            {
                for (int i = 0; i < row.Cells.Count; i++)
                {
                    row.Cells[i].Style.ForeColor = Color.Gray;
                    row.Cells[i].ReadOnly = true;
                }
            }
        }

問題は、これが色を設定したり、チェックボックスを無効にしたりしないことです。何が間違っていますか?

ありがとう。

より詳しい情報:

cells[1] はチェックボックス列です。

4

3 に答える 3

0

新しい DataGridViewRow をディメンション化して設定する必要があります。VB.NET では、次のようにします。

 dim MyLine as new DataGridViewRow
 with MyLine
      .Cells[i].DefaultCellStyle.ForeColor = Color.Gray;
      .Cells[i].ReadOnly = true;
 end with

それを試してみてください。

于 2016-04-06T22:29:36.720 に答える
-1

ソースがデータグリッドの場合、データグリッドを直接更新する方法が見つかりませんでした。コードは、列を手動で作成し、行をデータグリッドに手動で追加した後、正常に機能します。

データグリッドを設定するためにデータテーブルを使用している人は、データグリッドの描画中に変更をコミットするフォーマット変更イベントハンドラーを使用してセルを更新する必要があると思います。

于 2016-04-07T08:20:08.270 に答える