做外贸网站企业,网站建设方案书 个人网站,郴州发布网,私域商城平台在 MouseDown 事件触发 DoDragDrop 拖拽操作时#xff0c;Click 事件通常无效#xff0c;因为 DoDragDrop 方法会捕获鼠标事件并等待拖拽操作完成。
有一个简单地思路解决这个问题
当MouseDow时#xff0c;触发定时器#xff0c;延迟100s定时器到时后#xff0c;进入dra…在 MouseDown 事件触发 DoDragDrop 拖拽操作时Click 事件通常无效因为 DoDragDrop 方法会捕获鼠标事件并等待拖拽操作完成。
有一个简单地思路解决这个问题
当MouseDow时触发定时器延迟100s定时器到时后进入drag状态如果触发了MouseClick取消步奏2的定时器
private Timer delayTimer;
private Control delayControl;delayTimer new Timer();
delayTimer.Interval 100; // 设置为 100 毫秒
delayTimer.Enabled false; // 初始状态为停用// 绑定定时器的 Tick 事件处理程序
delayTimer.Tick new EventHandler(OnDelayTimerTick);private void Label1_MouseClick(object sender, MouseEventArgs e)
{//todo mouse点击后干点啥delayTimer.Stop();
}private void OnDelayTimerTick(object sender, EventArgs e)
{delayTimer.Stop();// 开始进入mouse drag流程var label delayControl;label.DoDragDrop(label.Parent.Parent.Name . delayControl.Name, DragDropEffects.Move);
}private void label_MouseDown(object sender, MouseEventArgs e)
{delayTimer.Start();delayControl (Control)sender;
}