4

私はDataGridView、最初の列のセルを選択したいです。

これが私のdatagridview.Click方法です:

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
    name = dataGridView1.CurrentRow.Cells[0].Value.ToString();
}

現在、私の名前変数はnullです。

私は何を間違っていますか?

ここに画像の説明を入力

4

3 に答える 3

3

CurrentRow はまだ設定されていない可能性があるため、イベント引数には RowIndex プロパティを使用してください。このようにしてみてください:

void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) {
  if (e.RowIndex > -1 && dataGridView1.Rows[e.RowIndex].Cells[0].Value != null) {
    name = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString();
  }
}

念のため、イベントが接続されていることを確認してください。

public Form1() {
  InitializeComponent();
  dataGridView1.CellClick += dataGridView1_CellClick;
}
于 2013-02-28T19:15:15.237 に答える
0

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

    private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
    {
      var view = (sender as DataGridView); //<-- notes this
      var currentCellString = view.CurrentCell.Value.ToString();
    }

senderオブジェクトは常に更新されるため、使用時にオブジェクトを取得する必要がある場合があります。

于 2013-02-28T19:34:52.280 に答える
-1
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
    object name = dataGridView1.Rows[e.RowIndex].Cells[0].Value;
    MessageBox.Show(name.ToString() == string.Empty ? "myvalue" : name.ToString());
}
于 2013-02-28T19:22:44.957 に答える