所以我的目标是在一次从下拉列表中的项目的用户点击,电池会自动调用EndEdit中()。最奇怪的是,以下将工作的代码在2-N ComboBoxesCells我下拉列表,选择从值却从第一个。有什么事,我在这里失踪??

        protected override void OnCellClick(DataGridViewCellEventArgs e)
        {
            base.OnCellClick(e);

            DataGridViewComboBoxEditingControl control = this.EditingControl as DataGridViewComboBoxEditingControl;
            if (control != null)
            {
                   control.DropDownClosed += new EventHandler(control_DropDownClosed);
            }
        }

            void control_DropDownClosed(object sender, EventArgs e)
            {
                this.EndEdit();
                DataGridViewComboBoxEditingControl control = sender as DataGridViewComboBoxEditingControl;
                control.DropDownClosed -= new EventHandler(control_DropDownClosed);
            }

应该在这里,我从DataGridView继承添加如果这不是明显

有帮助吗?

解决方案

在类似“最奇怪的是,以下将工作的代码在2-N ComboBoxesCells我下拉列表,选择从值却从第一个的”发生,这往往是因为事件发生,你需要做的东西了。

Seing你的榜样,我要说的是,在第一时间,当你点击,

DataGridViewComboBoxEditingControl control = this.EditingControl as DataGridViewComboBoxEditingControl;

给你control == null

也许你应该改变选择了做从Click你的东西来SelectedIndexChangedSelectedValueChanged事件?

希望这有助于,

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top