winforms WinForm:是否有可能对多个控件使用同一个函数,但返回不同的结果,这取决于悬停的是什么?

sqyvllje  于 2022-11-30  发布在  其他
关注(0)|答案(4)|浏览(129)

我有几个(28)控件。有些东西需要根据悬停的内容来显示。我想知道是否有一种方法可以避免制作28个函数(每个控件悬停一个),也许只制作一个?
我想用这样的东西来代替:

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

类似于:

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

我不知道为什么,我不知道为什么,我不知道为什么。

zysjyyx4

zysjyyx41#

是的,可以。您将看到您可以选择一个现有的函数作为任何控件的事件处理程序。您可以为所有28个控件选择同一个函数。您在此函数中获得的第一个参数是sender。这就是您要查找的控件。

jgzswidk

jgzswidk2#

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

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

    }

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

lawou6xi

lawou6xi3#

只需创建一个函数,使你想要的,并添加这个函数到所有按钮的MouseHover事件从属性屏幕。

mlmc2os5

mlmc2os54#

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

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

相关问题