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

时间:2014-01-07 20:02:43

标签: c# winforms hover controls

我有一些(28)控件。根据悬停的东西需要显示某些东西。我想知道是否有一种方法可以避免制作28个函数(每个控件悬停一个),也许只能制作一个?

EG。 我想替换这样的东西:

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

有类似的东西:

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

p.s sry代码缩进。我不知道它为什么不起作用。

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

只需创建一个能够满足您需求的功能,并将此功能添加到属性屏幕中所有按钮的MouseHover事件中。

答案 2 :(得分:1)

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

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

    }

您可以将此方法分配给按钮的事件MouseHover

答案 3 :(得分:0)

您可以创建一个可以使用Switch Statement的单个函数:

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