【发布时间】:2013-01-26 12:45:23
【问题描述】:
我有一个 datagridview 单元格有一个点击事件。这些单元格还具有以下 mouseDown 事件:
if (e.Button == MouseButtons.Left && e.Clicks == 1)
{
string[] filesToDrag =
{
"c:/install.log"
};
gridOperations.DoDragDrop(new DataObject(DataFormats.FileDrop, filesToDrag), DragDropEffects.Copy);
}
每当我尝试单击一个单元格时,mousedown 事件会立即触发并尝试拖动该单元格。例如,仅当用户按住鼠标 1 秒时,如何才能触发 mousedown 事件?谢谢!
【问题讨论】:
-
我倾向于不按时间执行此操作,而是按按住按钮时指针移动的距离。
-
@lc。我喜欢这个主意。一种惯性拖放?
-
@J.Steen 基本上。我在按下按钮时保存状态并检查指针是否移动超过某个阈值距离(
OnMouseMove)据我了解,这是大多数应用程序的响应方式,感觉很自然。例如,尝试在此页面上拖动一些东西,看看光标如何变化。 -
@lc。哦耶。奇怪的自然。我必须记住这个用户体验“模式”。