我目前正在使用带有三个单元格的DataGridView,第一个单元格是 DataGridViewComboBoxColumn 对象,我想确保每当我在 DataGridViewComboBoxColumn 对象中选择任何新项目时,dataGridview的其他单元格都会变空 . 如果我再次重新选择相同的项目并不重要 .
谁能告诉我怎样才能确保我在 DataGridViewComboBoxColumn 对象中选择了新项?我应该使用哪种属性或方法进行此方法?
您可以声明全局 List<int> gridComboSelections ,当您将DataSource绑定到网格时,可以使用组合框的SelectedValues填充此列表 . 当任何组合框'值改变时,找到组合框的位置并检查它是否与 gridComboSelections[i] 相同 . 如果它是相同的结束操作,如果没有做你想要的 . 如果值已更改,请记住更改列表中的相应值 .
List<int> gridComboSelections
gridComboSelections[i]
你可以参考以下代码做同样的事情 .
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { ComboBox combo = e.Control as ComboBox; if (combo != null) { combo.SelectionChangeCommitted += new EventHandler(combo_SelectionChangeCommitted); } } void combo_SelectionChangeCommitted(object sender, EventArgs e) { DataGridViewComboBoxEditingControl combo = sender as DataGridViewComboBoxEditingControl; if (combo != null) { for (int columnIndex = 0; columnIndex < dataGridView1.ColumnCount; columnIndex++) { if (columnIndex != combo.EditingControlDataGridView.CurrentCell.ColumnIndex) { dataGridView1[columnIndex, combo.EditingControlRowIndex].Value = null; } } } }
2 回答
您可以声明全局
List<int> gridComboSelections
,当您将DataSource绑定到网格时,可以使用组合框的SelectedValues填充此列表 . 当任何组合框'值改变时,找到组合框的位置并检查它是否与gridComboSelections[i]
相同 . 如果它是相同的结束操作,如果没有做你想要的 . 如果值已更改,请记住更改列表中的相应值 .你可以参考以下代码做同样的事情 .