Datagridview的ComboBox選擇即反饋

這個需求是這樣的,希望我在Datagridview內的ComboBox下拉選單中選擇完就能夠顯示在Datagridview上,而我的顯示需求是CheckBox要勾選起來。

然而實際我在找事件要進行這個功能的撰寫的時候,發現下拉式選單若要將值反饋給Datagridview需要結束編輯,也就是讓焦點移到非目前儲存格上,

這就頭痛了呀,就算加了Datagridview.EndEdit();也不知道該加在哪個階段才對,最後我終於google到了一個寫法,並加以修改成我的需求。

參考資料:https://t.codebug.vip/questions-3060753.htm

只可惜這個寫法還有一個缺點就是下拉式選單拉著拉著他就黑掉了ORZ…….

不過最後因為使用者回饋說這個功能有點多了,我也拿掉了它,所以沒在繼續研究如何能讓下拉式選單不會出現黑掉的狀況。

        private void DGV_Data_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            if (DGV_Data.CurrentCell.ColumnIndex == 9 && e.Control is ComboBox)
            {
                ComboBox comboBox = e.Control as ComboBox;
                comboBox.SelectedIndexChanged -= LastColumnComboSelectionChanged;
                comboBox.SelectedIndexChanged += LastColumnComboSelectionChanged;
            }
        }
        private void LastColumnComboSelectionChanged(object sender, EventArgs e)
        {
            int CurrentRow = DGV_Data.CurrentCell.RowIndex;
            var Org_CellValue = Column7.Items[Convert.ToInt32(Dt_Data.Rows[CurrentRow][9].ToString())].ToString();
            var sendingCB = sender as DataGridViewComboBoxEditingControl;
            string ChangeGate = sendingCB.EditingControlFormattedValue.ToString();
            DGV_Data.CurrentRow.Cells[0].Value = Column8.TrueValue;
        }

只是個路過的新手,發文有誤請告知。