WinForm:是否可以对多个控件使用相同的函数,但返回不同的结果,具体取决于悬停的内容



我有几个(28)个控件。需要根据悬停的内容显示某些内容。我想知道是否有办法避免制作 28 个函数(每个控件悬停一个),也许只做一个?

例如。我想替换这样的东西:

 void btn1Hover() { value = 1; }
    void btn2Hover() { value = 2; }
    ....

像这样:

 void btnsHover() { if(btn.Name= "btn1") value=1; else 2}

PSY用于代码缩进。我不知道为什么它不起作用..

是的,这有效。您将看到可以选择现有函数作为任何控件的事件处理程序。您可以为所有 28 个控件选择相同的功能。在此函数中获取的第一个参数是发送方。这就是您正在寻找的控件。

您可以使用这样的东西,使用 Tag 属性在您的情况下可能非常有趣

private void buttonMouseHover(object sender, EventArgs e)
    {
        value = ((Button)sender).Tag  
    }

您可以将此方法分配给按钮的鼠标悬停事件

只需创建一个函数来制作您想要的内容,并将该函数添加到属性屏幕中所有按钮的 MouseHover 事件中。

您可以创建一个可以使用 Switch 语句的函数:

Switch
{
  Case btn1Hover:
  break;
  Case btn2Hover:
  break
} 

最新更新