1

DB 内のデータから取り込まれた DataGridView がありますが、DataSource はありません。DB から行を取得し、init で DataGridView に行を追加します。

私の質問は、読み取り専用の列がありますが、この列のDBにデータがない場合があります。この場合、ユーザーが追加できるようにしたいのですが、情報が来た場合はデータを上書きしないでくださいDBから。

列内の単一のセルを編集可能にするにはどうすればよいですか?

IE 許可 ---

            Col1        Col2 (ReadOnly)                    Col1       Col2 (ReadOlny)
 Row1       A           Can't Change      -->   Row1       J          Can't Change
 Row2       B                                   Row2       B          I added this!
 Row3       C           No Change               Row3       T          No Change

しかし、これではありません---

            Col1        Col2 (ReadOnly)                    Col1       Col2 (ReadOlny)
 Row1       A           Can't Change      -->   Row1       J          OOPS!  
 Row2       B                                   Row2       B          I added this!
 Row3       C           No Change               Row3       T          Not allowed!
4

1 に答える 1

2

おそらく、読み取り専用列の錯覚を作成する必要があります。

列を読み取り専用に設定するのではなく、セル値が null または String.Empty と等しくない列内の各セルを読み取り専用として単純に変更できます。これにより、ユーザーは空白のセルを編集してデータを保護できます。

DataGridViewRow をループするだけです:-

Foreach(DataGridViewRow row in DataGridView1.Rows)
{
   If(!row.Cells[2].Value.Equals(null) || !row.Cells[2].Value.Equals(String.Empty))
     {
        row.Cells[2].ReadOnly = true;
     }
}

構文の問題についてはご容赦ください。私は頭の中でこれを行いました。

于 2013-02-26T22:12:44.933 に答える