使用标签设置 "mouseDown" 布尔值
Setting a "mouseDown" bool using labels
我试图建立一个系统来检查是否在 winforms 应用程序中单击了鼠标,但最终还是这样做了
private void lblChips_MouseDown(object sender, MouseEventArgs e)
{
mouseDown = true;
}
private void lblChips_MouseUp(object sender, MouseEventArgs e)
{
mouseDown = false;
}
8 次(每个标签)。
有人知道是否有更有效的方法吗?我尝试使用
private void frmGame4_MouseDown(object sender, MouseEventArgs e)
{
mouseDown = true;
}
private void frmGame4_MouseUp(object sender, MouseEventArgs e)
{
mouseDown = false;
}
但这不起作用。任何帮助将不胜感激。
你可以制作两种方法,一种用于鼠标弹起,一种用于鼠标按下,如下所示:
private void labels_mouseDown(object sender, MouseEventArgs e)
{
mouseDown = true;
}
private void labels_mouseUp(object sender, MouseEventArgs e)
{
mouseDown = false;
}
然后,link将所有标签添加到这些方法中。您也可以通过代码执行此操作:
label.mouseDown += labels_mouseDown;
label.mouseUp += labels_mouseUp;
这必须在 InitializeComponent() 下的某处完成;方法。您仍然需要为每个标签执行此操作,但最终代码更少。
这个
public Form1()
{
InitializeComponent();
CollectFormControls(this);
ControlList.Add(this);
MergeEvents();
}
List<Control> ControlList = new List<Control>();
private void CollectFormControls(Control c)
{
foreach (Control control in c.Controls)
{
ControlList.Add(control);
CheckSubControls(control);
}
}
private void CheckSubControls(Control control)
{
if (control.Controls.Count > -1)
{
CollectFormControls(control);
}
}
private void MergeEvents()
{
for (int i = 0; i < ControlList.Count; i++)
{
ControlList[i].MouseDown += All_MouseDown;
ControlList[i].MouseUp += All_MouseUp;
}
}
public void All_MouseUp(object sender, MouseEventArgs e)
{
this.Text = "up";
}
public void All_MouseDown(object sender, MouseEventArgs e)
{
this.Text = "down";
}
我试图建立一个系统来检查是否在 winforms 应用程序中单击了鼠标,但最终还是这样做了
private void lblChips_MouseDown(object sender, MouseEventArgs e)
{
mouseDown = true;
}
private void lblChips_MouseUp(object sender, MouseEventArgs e)
{
mouseDown = false;
}
8 次(每个标签)。
有人知道是否有更有效的方法吗?我尝试使用
private void frmGame4_MouseDown(object sender, MouseEventArgs e)
{
mouseDown = true;
}
private void frmGame4_MouseUp(object sender, MouseEventArgs e)
{
mouseDown = false;
}
但这不起作用。任何帮助将不胜感激。
你可以制作两种方法,一种用于鼠标弹起,一种用于鼠标按下,如下所示:
private void labels_mouseDown(object sender, MouseEventArgs e)
{
mouseDown = true;
}
private void labels_mouseUp(object sender, MouseEventArgs e)
{
mouseDown = false;
}
然后,link将所有标签添加到这些方法中。您也可以通过代码执行此操作:
label.mouseDown += labels_mouseDown;
label.mouseUp += labels_mouseUp;
这必须在 InitializeComponent() 下的某处完成;方法。您仍然需要为每个标签执行此操作,但最终代码更少。
这个
public Form1()
{
InitializeComponent();
CollectFormControls(this);
ControlList.Add(this);
MergeEvents();
}
List<Control> ControlList = new List<Control>();
private void CollectFormControls(Control c)
{
foreach (Control control in c.Controls)
{
ControlList.Add(control);
CheckSubControls(control);
}
}
private void CheckSubControls(Control control)
{
if (control.Controls.Count > -1)
{
CollectFormControls(control);
}
}
private void MergeEvents()
{
for (int i = 0; i < ControlList.Count; i++)
{
ControlList[i].MouseDown += All_MouseDown;
ControlList[i].MouseUp += All_MouseUp;
}
}
public void All_MouseUp(object sender, MouseEventArgs e)
{
this.Text = "up";
}
public void All_MouseDown(object sender, MouseEventArgs e)
{
this.Text = "down";
}