1

私は2つの列を持つグリッドビューを持っていました.1つはテキストボックス列で、もう1つはチェックボックス列です.どのチェックボックスがチェックされているかを知る方法.

ここに画像の説明を入力

画像に示すように、チェックボックスのいずれかがチェックされていると仮定すると、そのチェックボックスに対応するテキストボックスの値を表示したいと思います。

誰でも私を助けることができますか?私は以下のコードを試しましたが、私が直面している問題は、次のチェックボックスをクリックすると値が表示され、以前にチェックしたチェックボックスの値が表示されることです..

dataGridView1.CellValueChanged += new DataGridViewCellEventHandler(dataGridView1_CellValueChanged);

  void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
    {  
        object tempObj = dataGridView1.Rows[e.RowIndex].Cells[1].Value;
         dataGridView1_CurrentCellDirtyStateChanged(sender, e);

        if (((e.ColumnIndex) == 1) && ((bool)dataGridView1.Rows[e.RowIndex].Cells[1].Value))
        {
            MessageBox.Show(dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString());

        }
    }
4

4 に答える 4

3
 private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
    {
        if (dataGridView1.IsCurrentCellDirty)
        {
            dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
        }
    }

    private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
    {
        if (((e.ColumnIndex) == 1) && ((bool)dataGridView1.Rows[e.RowIndex].Cells[1].Value))
        {
            MessageBox.Show(dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString());

        }
    }

以下のリンクは、cellvalue_changed と cell_content_click の概念を理解するのに役立ちました

そして、これらのリンクの助けを借りて、私は最終的に私の問題を解決しました

于 2013-08-26T09:53:27.990 に答える
1

それはこれと同じくらい簡単です

//replace the row number and column name with your own 
if ((bool)dataGridView1.Rows[0].Cells["Column1"].Value)
 {
       //do your work
 }
于 2013-08-26T08:38:14.477 に答える
0
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
    if (e.RowIndex > -1 && e.ColumnIndex > -1)
    label1.Text = dataGridView1.Rows[e.RowIndex].Cells["Col1"].Value.ToString();
}
于 2013-08-26T09:18:00.853 に答える