【问题标题】:C# Hold down mouse eventC#按住鼠标事件
【发布时间】:2011-07-08 11:28:16
【问题描述】:

我有一个 mousemove 事件,它获取光标的位置并将其输出到两个标签(X 和 Y),当我悬停时,值会动态变化。我有一个 mousedown 事件,单击该事件时,相同的值会输出到文本框。如何组合 mousedown 和 mousemove 事件,以便当我悬停并按住鼠标按钮时,文本框值会随着我的移动而动态变化。

【问题讨论】:

  • 如何存储一个变量,当鼠标按下时,您设置变量,例如IsMouseLeftButtonDown 布尔值;当您移动鼠标时,您可以检查变量,如果测试通过,则只设置文本框值
  • 你能不能简单点?您想在文本框中显示鼠标移动点或鼠标按下点吗?

标签: c# windows mouseevent


【解决方案1】:

您可以在 Move 事件处理程序中查询鼠标按钮,即:

void Form1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
    if (e.Button == MouseButtons.Left) {
        String tipText = String.Format("({0}, {1})", e.X, e.Y);
        trackTip.Show(tipText, this, e.Location);
    }
}

【讨论】:

    【解决方案2】:

    跟踪鼠标向下和鼠标向上事件以设置一个变量来确定是否按下鼠标按钮(即在鼠标向上时设置向下未设置)然后只需在 mouse_move 中检查此变量

    http://msdn.microsoft.com/en-us/library/system.windows.forms.control.mousebuttons.aspx 举个例子

    【讨论】:

      【解决方案3】:

      使用

       private void OnMouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
       {
              if (e.Button == System.Windows.Forms.MouseButtons.Left)
              {
      
              }
       }
      

      像这样,在第二个if,当你的鼠标移动并且鼠标按钮被按下时,你会遇到一个条件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-29
        • 2015-06-08
        • 1970-01-01
        相关资源
        最近更新 更多