這個需求是這樣的,希望我在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;
}
只是個路過的新手,發文有誤請告知。