有時,用戶在DataGridViewTextBox中輸入文本時,要啓用或禁用控件,具體取決於要輸入的值。例如,在鍵入正確值後啓用按鈕取消選擇DataGridViewTextBoxCell中的文本.CommitEdit(DataGridViewDataErrorContexts.Commit)
Microsoft在文章中介紹瞭如何創建可禁用的DataGridViewButtonCell。
這是他們的把戲(它也可以在其他方案可以看出)
- 確保你的事件DataGridView.CurrentCellDirtyStateChanged
- 在收到此事件,通過提交當前單元格的變化調用: DataGridView.CommitEdit(DataGridViewDataErrorContexts.Commit);
- 此承諾將導致事件DataGridView.CellValueChanged
- 確保當引發此事件
- 在你OnCellValueChanged功能你收到此通知,確認改變值的有效性,並決定是否 啓用或禁用相應的控制(例如按鈕)。
這很好,除了CommitEdit使得在OnCellValueChanged中選擇文本。所以如果你想輸入64,你會在輸入6時得到通知,當你輸入4時會得到通知。但是因爲選擇了6,所以你不會得到64,但是6被替換爲4. 不知何故代碼必須取消選擇在解釋值之前在OnCellValueChanged中添加6。
DataGridView.Selected屬性沒有這樣做,它不取消選擇文本,但取消選擇單元格。
所以:如何取消選中單元格中的文本?