我在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