我有一个带有DataGridView(名为 dgvHardware )控件的基本WinForms应用程序,绑定到此控件的是此代码:
private void dgvHardware_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (e.Control is ComboBox)
{
((ComboBox)e.Control).SelectionChangeCommitted -= new EventHandler(cboDgvHardware_SelectionChanged);
((ComboBox)e.Control).SelectionChangeCommitted += new EventHandler(cboDgvHardware_SelectionChanged);
}
}
private void cboDgvHardware_SelectionChanged(object sender, EventArgs e)
{
// string result is the selected text of the combo box
// int row is the row index that the selected combo box lives
string result = ((ComboBox)sender).SelectedItem.ToString();
// int row = ????
}
长话短说,我需要能够确定触发事件的行,以便根据ComboBox选择更改行中的其他单元格。第二个函数中的结果返回正确的值,这是值得的。
如果不清楚或者您是否需要任何其他信息,请告诉我。
谢谢,
安德鲁
答案 0 :(得分:6)
像这样使用DataGridView.CurrentCell Property:
int row = dgvHardware.CurrentCell.RowIndex;
答案 1 :(得分:1)
您会对dgvHardware.CurrentRow
感兴趣,它可以让您访问整行,您可以使用dgvHardware.CurrentRow.Cells[index or columnName]
导航到不同的列,并更改其他单元格值。