1

私は、非常に簡単にできるはずの何かに頭を悩ませています。一日になりましたので、ようやく諦めて質問させていただきます。.netのdatagridviewでselectionChangedイベントを実際にトリガーするにはどうすればよいですか?基本的に、ユーザーが行の任意の場所をダブルクリック/またはシングルクリックしたときに行の値を取得したいと思います。しかし、私は一生の間、このイベントを発火させることはできません。

private void dataGridView1_SelectionChanged(object sender, EventArgs e)
        {
            foreach (DataGridViewRow row in AddrGrid.SelectedRows)
            {
                string value1 = row.Cells[0].Value.ToString();
                string value2 = row.Cells[1].Value.ToString();
                //...
            }
        }

私はこれに似たものを試しましたが、データグリッドのセルまたは行をクリックすると、私が見逃しているものが起動しませんか?

セルをクリックすると、このイベントが発生します。

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {


            Addresses.aTyp = AddrGrid.Rows[AddrGrid.CurrentCell.RowIndex].Cells["Address Type"].Value.ToString();
            Addresses.seq  =  AddrGrid.Rows[AddrGrid.CurrentCell.RowIndex].Cells["Sequence"].Value.ToString();

        }

しかし、私はセルだけでなく、ダブルクリックまたは行をクリックするのが好きです。どんな助けでも大歓迎です。

4

4 に答える 4

2
private void dataGridView_SelectionChanged(object sender, EventArgs e) 
{
     foreach (DataGridViewRow row in dataGridView1.SelectedRows) 
     {
        string value1 = row.Cells[0].Value.ToString();
        string value2 = row.Cells[1].Value.ToString();
     }
 }
于 2012-12-29T06:41:25.673 に答える
2

あなたはこれを使うことができます

    private void AddrGrid_CellEnter(object sender, DataGridViewCellEventArgs e)
    {

        Addresses.aTyp = AddrGrid.Rows[AddrGrid.CurrentCell.RowIndex].Cells["Address Type"].Value.ToString();
        Addresses.seq = AddrGrid.Rows[AddrGrid.CurrentCell.RowIndex].Cells["Sequence"].Value.ToString();
    }
于 2012-12-29T06:46:34.510 に答える
1

グリッドオブジェクトで、それを「foo」と呼びましょう。あなたは次のようなことをします。

foo.SelectionChanged += dataGridView1_SelectionChanged

イベントを接続するには、どこかでそれを行う必要があります。私は通常、フォームのコンストラクターでそれを行います

于 2012-12-29T06:33:15.003 に答える
0

DataGridviewのselectionchangedイベントに関連する多くの回答では、「DG1.SelectedRows(0)」を使用しています。これは根本的に間違っています。複数の行が選択されている可能性があり、最初に選択された行が新しく選択された行ではない可能性があります。選択したすべての行を毎回解析する場合を除いて、「DG1.Rows(DG1.CurrentCell.RowIndex)」を使用する必要があります。

于 2020-01-23T22:19:00.660 に答える