不要問爲什麼,但我需要一種方法來阻止用戶在'new'datagridview行中輸入單元格,但他們有多個行被選中。如何防止在選擇多個datagridview行時選擇「新」datagridview行中的單元格?
當前,正在選中鼠標在單擊和拖動過程中懸停的行的第一列中的單元格。如果您單擊單元格,則不再選擇行,因此您不能使用任何單元格單擊事件或任何其他內容。
歡迎任何建議。
P.S.不要嘗試編輯來自selectionchanged事件的當前單元格,已經嘗試過!
感謝,
艾薩克
不要問爲什麼,但我需要一種方法來阻止用戶在'new'datagridview行中輸入單元格,但他們有多個行被選中。如何防止在選擇多個datagridview行時選擇「新」datagridview行中的單元格?
當前,正在選中鼠標在單擊和拖動過程中懸停的行的第一列中的單元格。如果您單擊單元格,則不再選擇行,因此您不能使用任何單元格單擊事件或任何其他內容。
歡迎任何建議。
P.S.不要嘗試編輯來自selectionchanged事件的當前單元格,已經嘗試過!
感謝,
艾薩克
我有一個想法,DataGridView控件具有RowState屬性。當你的行被選中時,檢查狀態。我不確定州是什麼(如果我甚至在場上)...無論如何,你可能能夠檢查那條路線。
我正在尋找的詳細信息...
好了...想我找到了一個體面的方式來做到這一點:
void DataGridView1_RowsAdded (object sender, DataGridViewRowsAddedEventArgs e)
{
currentNewRow = e.RowIndex;
}
void DataGridView1_CellMouseClick(Object sender, DataGridViewCellMouseEventArgs e)
{
if (e.RowIndex == currentNewRow)
{
// don't add to Selection
}
}
使用CellStateChanged事件:
private void dataGridView_CellStateChanged(object sender, DataGridViewCellStateChangedEventArgs e) {
if (e.Cell.OwningRow.IsNewRow && dataGridView.SelectedRows.Count > 1)
e.Cell.Selected = false;
}
對不起,但單元格狀態改變不會觸發,除非我點擊單元格。但是,如果我點擊單元格,那麼選定的行= 0。 – 2011-05-30 23:55:52
對不起,我應該在我的問題上更具體。當你選擇多行時,它實際上是爲鼠標所在的行選擇第一列的單元格。所以如果你點擊並拖動來選擇多行並釋放,你仍然有一個選定的單元格,而實際上沒有點擊它。 – 2011-05-30 23:57:37