3

我有一个带有 d 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 选择更改行中的其他单元格。第二个函数中的结果返回正确的值,因为它的价值。

如果不清楚,或者您需要任何其他信息,请告诉我。

谢谢,
安德鲁

4

2 回答 2

6

像这样使用DataGridView.CurrentCell 属性

int row = dgvHardware.CurrentCell.RowIndex;
于 2011-07-15T04:46:32.963 回答
1

您会感兴趣,dgvHardware.CurrentRow这将使您可以访问整行,并且您可以使用dgvHardware.CurrentRow.Cells[index or columnName]和更改其他单元格值导航到不同的列。

于 2011-07-15T05:07:21.980 回答