C# 如果光标与标签相交,如何执行if语句?

C# 如果光标与标签相交,如何执行if语句?,c#,.net,C#,.net,我正在做一个用鼠标导航的迷宫游戏 我将标签放在面板上,并使用面板离开事件将光标重置回开始位置 但是有一个标签,它不应该在重置,所以我想对这个标签做一个例外。它的位置是300.400,大小是1,10 我正计划做一个if语句,说明光标是否相交,但没有类似的特性 Cursor.IntersectsWith() 那么我如何才能做到这一点呢?我也试着去做 if cursor.position.x == 300 对于y也是一样,但是x和y的位置与标签的位置无关?如果光标相交或在标签上,我不确定如何执行i

我正在做一个用鼠标导航的迷宫游戏

我将标签放在面板上,并使用面板离开事件将光标重置回开始位置

但是有一个标签,它不应该在重置,所以我想对这个标签做一个例外。它的位置是300.400,大小是1,10

我正计划做一个if语句,说明光标是否相交,但没有类似的特性

Cursor.IntersectsWith()
那么我如何才能做到这一点呢?我也试着去做

if cursor.position.x == 300
对于y也是一样,但是x和y的位置与标签的位置无关?如果光标相交或在标签上,我不确定如何执行if语句。请帮忙


我知道我没有现成的代码,但问题很清楚

为了解决您的问题,有一个名为标签名称的属性。 我假设您使用的是WinForms,因为您没有提到框架。 使用Label的Name属性来创建一个 例外 在PanelLeave事件处理程序中添加以下代码:-

foreach(Label labels in LabelList)
{
  if(labels.Name!="exception-label-name-here")
      Reset() ; // function to reset the cursor position.
 // LabelList is a list containin all the `Label`(s) in your panel.
}
当您向面板添加标签时,请将标签添加到我命名为LabelList的常规列表中


这是什么UI框架?WinForms?银灯?WPF?还有别的吗?一般来说,您必须处理不同的坐标系,例如屏幕绝对坐标系、窗口绝对坐标系、相对于特定控件的坐标系等?我猜是WinForms?这是一个正常的形式。为什么不在标签上使用MouseEnter事件呢?这是一个标签,它就像一个假的完成,而真正的完成显示出来。当鼠标进入时,我该怎么办?有没有一种方法我可以调用鼠标输入过程并将布尔值返回到我的面板离开?然后你可以使用MouseEnter事件,然后在面板的所有控件中循环,并检查它是否是标签。你能告诉我怎么做吗?我知道如何进行鼠标输入,我有一个lblFinish的鼠标输入,它所做的只是将布尔值设置为true,然后他们必须到达第二个标签才能完全完成迷宫。这就像一个检查站,证明你是合法的。如果我允许代码在这个布尔值为真时离开面板,在检查点之后他们就不必担心了,因为他们会穿越每一堵墙,而这不是游戏应该如何工作的。有没有一种方法可以调用鼠标输入过程并将布尔值返回到我的面板离开?在标签上而不是面板上使用MouseEnter事件在执行此操作时,我注意到MouseEnter私有虚线上有一个小的绿色错误。它说'frmMaze.MouseEnterobject,System.EventArgs'隐藏继承的成员System.Windows.Forms.Control.MouseEnter'。如果要隐藏,请使用新关键字。它仍然允许我用这个错误运行程序,但我想我会让你知道是的,到目前为止它仍在工作,仍在做一些更改,但我很高兴:谢谢!但是,如何消除上面提到的错误通知?^^^使用新关键字或其他东西的小通知。
  private void MouseEnter(object sender, EventArgs e )
  {
     Label tmplbl = sender as Label ; 
     if(tmplbl.Name == "some-name-here.")
      // do something
     else if(tmplbl.Name == "some other name")
         // do something else.
     // in this way construct a if-else ladder.
  }