我在Windows窗體應用程序中使用DataGridView控件。當用戶按住控件選擇多個項目時,它可以正常工作。現在,當用戶釋放控件並單擊(並按住鼠標左鍵)以開始拖動操作時,選擇將改變。當用戶按住鼠標左鍵時,如何停止選擇清除?DataGridView鼠標選擇
4
A
回答
3
我發現這個答案在Microsoft Forum
「爲了拖放多行,將DataGridView.MultiSelect設置爲true,並在DataGridView.DragDrop事件中,刪除並插入DataGridView.SelectedRows集合中的所有行。」
這blog entry還展示瞭如何實現拖動和一個DataGridView
下降,但在我看來,你將不得不從DataGridView中繼承並重寫這些鼠標事件作爲選擇的變化總是會得到否則稱呼。
- 保護虛擬無效 OnCellMouseDown(DataGridViewCellMouseEventArgs E);
- protected virtual void OnCellMouseUp(DataGridViewCellMouseEventArgs e);
然後,您可以攔截OnMouseDown中的SelectionChanged事件,並在OnMouseUp中進行選擇。你將不得不保留下來的位置點,這樣你可以選擇正確的項目,如果它不是一個拖放。
您還必須在鼠標向下事件中維護所選行的列表,並且如果它變成拖放事件,則拖動所有這些選定行並在鼠標上向上選擇它們。
並且不要忘記在鼠標向上事件中清除所選行的列表/副本。
1
好問題。雖然這可能不是那麼簡單,因爲你可能一直希望的答案,它應該給你如何去解決你的問題的一些很好的啓示: http://www.codeproject.com/KB/cpp/DataGridView_Drag-n-Drop.aspx
0
我發現了一種有用的技術。在選擇最後一個單元格後(使用Ctrl或Shift鍵),在釋放鼠標鍵之前開始拖動,選擇內容不會改變。然後在下拉列表中,您可以使用以下方法獲取所選單元格的列表:
private SC.ArrayList selectedCells()
{
SC.ArrayList cellsList = new SC.ArrayList();
Int32 selectedCellCount = dataViewImages.GetCellCount(DataGridViewElementStates.Selected);
if (selectedCellCount > 0)
{
for (int i = 0;i < selectedCellCount; i++) {
int cell = dataViewImages.SelectedCells[i].RowIndex*ShowImages.NumColumnsForWidth() + dataViewImages.SelectedCells[i].ColumnIndex;
cellsList.Add(cell);
}
cellsList.Sort();
return cellsList;
}
else
return null;
}
相關問題
- 1. DataGridView多行選擇清除鼠標左鍵拖放
- 2. 用鼠標右鍵單擊以選擇datagridview行
- 3. 用鼠標右鍵選擇dataGridView中的行
- 4. 檢測鼠標點擊在dataGridView中選擇一行
- 5. JTree鼠標釋放選擇
- 6. StatusBar MenuStripItem選擇鼠標
- 7. 使用鼠標滾動DataGridView
- 8. DataGridView選擇行
- 9. 選擇datagridview
- 10. WordPress鼠標滑過選擇選項
- 11. 鼠標在選擇選項jquery
- 12. 鼠標光標默認選擇文本?
- 13. 通過DataGridView列標題檢測鼠標
- 14. jQuery的:的mouseenter,鼠標懸停,鼠標離開,鼠標移出上選擇
- 15. 當我按下鼠標右鍵時,如何在datagridview中選擇一行?
- 16. 選擇選項不匹配鼠標選擇
- 17. vb.net/DataGridView的選擇?
- 18. 選擇DataGridView的行?
- 19. 選擇上的DataGridView
- 20. Powershell:選擇DataGridView行
- 21. 當鼠標通過onmouseover選項/選擇選項時,選擇標記事件
- 22. DataGridView複選框選擇
- 23. GWT DataGrid禁用鼠標懸停選擇
- 24. 鼠標在MASM32中的選擇
- 25. 鼠標選擇在屏風/ TMUX
- 26. 的jqGrid - 鼠標點擊不選擇行
- 27. 通過鼠標懸停的D3選擇
- 28. 使用鼠標選擇頂點JOGL
- 29. SysListView32像鼠標選擇矩形
- 30. WPF ListBox用鼠標選擇單詞
我昨天看到那篇文章...我希望在「單擊」而不是「鼠標按下」時發生選擇, 。我已經實現了拖放功能,但我只是試圖修復它,以便用戶在拖動之前選擇最後一個項目時不必按住鼠標按鈕... – joek1975 2008-10-10 14:59:19