我需要在用户单击它时在datagridview上获取选定单元格的值。
我尝试将值带到文本框以测试click事件,但是当我单击它时,文本框不显示单元格值。
private void btnsync_Click(object sender, EventArgs e) //Obtiene el catálogo de presupuestos
{
SqlConnection conn = new SqlConnection(@"Data Source=.\MYINSTANCE;Integrated Security=True;MultipleActiveResultSets=True");
string cmd = "SELECT name FROM master.dbo.sysdatabases WHERE name NOT IN ('master', 'tempdb', 'model', 'msdb');";
var dataAdapter = new SqlDataAdapter(cmd, conn);
var commandBuilder = new SqlCommandBuilder(dataAdapter);
var ds = new DataSet();
dataAdapter.Fill(ds);
dataGridView1.ReadOnly = true;
dataGridView1.DataSource = ds.Tables[0];
}
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value != null)
{
dataGridView1.CurrentRow.Selected = true;
txtpresup.Text = dataGridView1.Rows[e.RowIndex].Cells["name"].FormattedValue.ToString();
}
}
我希望“ textpresup”文本框充满所选单元格的值。
答案 0 :(得分:0)
您正在寻找的是
DataGridView.SelectedRows[0].Cells[0].Value.ToString();
不要忘记将Cells[0]
更改为列索引(例如Cells[4]
)或列名(例如Cells["Name"]
)
但是,如果触发此代码并且未选择任何单元格/行,则很可能会获得null reference error
答案 1 :(得分:0)
已解决
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (dataGridView1.SelectedCells.Count > 0)
{
int selectedrowindex = dataGridView1.SelectedCells[0].RowIndex;
DataGridViewRow selectedRow = dataGridView1.Rows[selectedrowindex];
string value = selectedRow.Cells["name"].Value.ToString();
txtpresup.Text = value;
}
}
}