2

私は完全に正常に動作しているDataGridViewを持っています。データを表示するためだけに使用します。

ここで、チェックボックスで行を選択し、ボタンをクリックするだけで選択した行に対してのみ操作を実行できるようにします(このボタンは同じフォームのグリッドから外れています)。この目的のために、次手順に従って、datagridviewにチェックボックス列を追加します。

アプリケーションを実行すると、マウスクリックでもキーボードでもチェックボックスをオンにできません。そして、その見た目から、それが無効/読み取り専用状態ではないことがわかります。したがって、チェックボックスをクリックしようとすると、有効なチェックボックスと同じように、通常どおり境界線が変更されます。しかし、最後にそれはチェックボックスをチェックしていません。

4

4 に答える 4

3

Try it.

 private void Form1_Load(object sender, EventArgs e)
    {
        DataGridViewCheckBoxColumn ck = new DataGridViewCheckBoxColumn();
        dataGridView1.Columns.Insert(0,ck);
    }

may help you.

Ismail here is your solution of your confusion Dgv-DatabindingCompleteEvent

于 2010-10-18T12:05:25.243 に答える
2

私は同じ問題を経験しました。私にとって、解決策は非常に簡単でした。私のdatagridviewには無効な編集オプションがあり(ユーザーにデータを変更させたくなかったため)、DataGridViewCheckBoxColumnをチェック/チェック解除できるようにしたかったのです。そのため、dataGridViewプロパティで[編集を有効にする]オプションをオンにしましたが、コードでは、目的のcheckBoxColumnを除くすべての列で無効にしました。それが誰かに役立つことを願っています。

于 2012-08-20T10:31:37.577 に答える
1

dgv内のすべてのチェックボックスの状態を確認する場合:

foreach (DataGridViewRow row in dataGridView1.Rows)
{
    DataGridViewCheckBoxCell chk = row.Cells[0] as DataGridViewCheckBoxCell;

    if (Convert.ToBoolean(chk.Value) == true)
      MessageBox.Show("this cell checked");

}
于 2011-05-19T06:22:16.947 に答える
0

私の場合、page_loadにgridviewローディングコードがあったので、ボタンをクリックした後、グリッドがリロードされ、選択が失われました。したがって、コードを内部に移動します

if(!isPostback)
{ LoadGrid();}

私のために働いた。

理解を深めるために、page_loadにブレークポイントを設定します。

于 2020-11-18T14:44:24.670 に答える