Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在不访问MouseEventArgs的情况下获取鼠标状态?_C#_.net_Winforms_Mouse - Fatal编程技术网

C# 在不访问MouseEventArgs的情况下获取鼠标状态?

C# 在不访问MouseEventArgs的情况下获取鼠标状态?,c#,.net,winforms,mouse,C#,.net,Winforms,Mouse,我有一个有很多很多控件的表单。我需要检测鼠标是向下还是向上。大多数时候,我没有鼠标指针 有没有一种快速简便的方法来判断鼠标是否在没有鼠标的情况下落下 有没有其他选择,或者这样的选择是唯一的选择 foreach (Control c in this.Controls) { c.MouseUp += new MouseEventHandler(globalMouseUp); c.MouseDown += new MouseEventHandler(globalMouseDown);

我有一个有很多很多控件的表单。我需要检测鼠标是向下还是向上。大多数时候,我没有鼠标指针

有没有一种快速简便的方法来判断鼠标是否在没有鼠标的情况下落下

有没有其他选择,或者这样的选择是唯一的选择

foreach (Control c in this.Controls)
{
    c.MouseUp += new MouseEventHandler(globalMouseUp);
    c.MouseDown += new MouseEventHandler(globalMouseDown);
}


bool isMouseUp = true;


private void globalMouseDown(object sender, MouseEventArgs e)
{
    isMouseUp = false;
}

private void globalMouseUp(object sender, MouseEventArgs e)
{
    isMouseUp = true;
}

您可以尝试使用计时器进行检查:

private void timer1_Tick(object sender, EventArgs e) {
  this.Text = "Mouse Is " + (Control.MouseButtons == MouseButtons.Left);
}

检查Control.MouseButtons静态属性:

if (Control.MouseButtons == MouseButtons.Left)
{
}

处理窗体上的鼠标事件,而不是单个控件。@根据我的经验,窗体不会像WPF那样冒泡事件。窗体上的事件它们仅直接在窗体上激发。控件上的鼠标向下移动不会在窗体上出现气泡。如果你已经在表单级别完成了这项工作,那么请展示如何。“我需要检测鼠标是向下还是向上。”比如,它是否感到沮丧或心情良好?或者如果它今天不起作用?(对不起,我忍不住。)
MouseButtons
<正是我想要的。谢谢实现IMessageFilter是一种将其转化为事件的方法。因为我花了一段时间才弄清楚没有空格意味着什么,也许这会帮助人们:System.Windows.Forms.MouseButtons pressedButtons=System.Windows.Forms.Control.MouseButtons;好奇的是,没有
System.Windows.Forms
,有没有办法实现完全相同的功能?在使用WPF开发时,似乎没有必要仅为了完成此特定任务而引用附加库,特别是如果您知道您不需要它来完成任何其他任务。如果(Mouse.LeftButton==MouseButtonState.Pressed),您似乎可以使用
if(Mouse.LeftButton==MouseButtonState.Pressed)
如果使用WPF开发,则使用
System.Windows.Input