首页 文章

DataGridView组合框中的混淆

提问于
浏览
0

我目前正在使用带有三个单元格的DataGridView,第一个单元格是 DataGridViewComboBoxColumn 对象,我想确保每当我在 DataGridViewComboBoxColumn 对象中选择任何新项目时,dataGridview的其他单元格都会变空 . 如果我再次重新选择相同的项目并不重要 .

谁能告诉我怎样才能确保我在 DataGridViewComboBoxColumn 对象中选择了新项?我应该使用哪种属性或方法进行此方法?

2 回答

  • 0

    您可以声明全局 List<int> gridComboSelections ,当您将DataSource绑定到网格时,可以使用组合框的SelectedValues填充此列表 . 当任何组合框'值改变时,找到组合框的位置并检查它是否与 gridComboSelections[i] 相同 . 如果它是相同的结束操作,如果没有做你想要的 . 如果值已更改,请记住更改列表中的相应值 .

  • 0

    你可以参考以下代码做同样的事情 .

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

相关问题