如何在C#中做一个适用于多个控件的事件处理程序?

问题描述 投票:7回答:3

在Visual Basic中,我知道怎么做,但我是C#新手,所以你们能告诉我,如何用鼠标悬停做一个 "private void",把同一个事件应用到多个控件上?有一个例子。

private void button1, button2, button3, button4_MouseHover(object sender, EventArgs e)
{
     btn.Image = pic
}
c# controls
3个回答
16
投票

只要声明一个事件处理程序,并将每个按钮指向它。

private void Common_MouseHover(object sender, EventArgs e)
{
     Button btn = sender as Button;
     if (btn != null)
         btn.Image = pic
}

然后在代码或设计器中

button1.MouseHover += Common_MouseHover;
button2.MouseHover += Common_MouseHover;
// .. etc

3
投票

当你在一个按钮上订阅事件时,它只是一个标准的事件处理程序。

button1.Click += myEventHandler;

你可以用同样的代码为每个按钮添加处理程序。

button1.Click += myEventHandler;
button2.Click += myEventHandler;
button3.Click += myEventHandler;
button4.Click += myEventHandler;
button5.Click += myEventHandler;
button6.Click += myEventHandler;

0
投票
button1.MouseOver += OnMouseOver(...)
button2.MouseOver += OnMouseOver(...)
button3.MouseOver += OnMouseOver(...)
button4.MouseOver += OnMouseOver(...)
© www.soinside.com 2019 - 2024. All rights reserved.