如何选择单元格的值?

我有一个DataGridView ,我想选择第一列的单元格。

Heres是我的datagridview.Click方法:

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

目前我的名字变量为null

我究竟做错了什么?

在此处输入图像描述

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; } 

你可以这样做:

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

有时您需要在使用时抓取sender对象 - 因为它将始终更新。

 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()); }