不同的事件使用相同的代码
本文关键字:代码 事件 | 更新日期: 2023-09-27 18:01:37
我有两个事件:
this.lblSettings.MouseEnter += new System.EventHandler(this.HookEvent);
this.lblSettings.MouseLeave += new System.EventHandler(this.HookEvent);
他们称之为Method:
private void HookEvent(object sender, EventArgs e)
{
try
{
string method = System.Reflection.MethodBase.GetCurrentMethod().Name;
Label label;
if (sender is Label)
{
//Get the event. eg: MouseEnter, MouseLeave
label = (Label)sender;
label.BackColor = Color.FromArgb(30, 30, 30);
}
else if (sender is PictureBox)
{
PictureBox picBox;
picBox = (PictureBox)sender;
Control control = picBox.Parent;
if (control is Panel)
{
foreach (Control ctrl in control.Controls)
{
if (ctrl is Label)
{
label = (Label)ctrl;
label.BackColor = Color.FromArgb(30, 30, 30);
break;
}
}
}
}
}
catch (Exception ex)
{
throw;
}
}
在LABEL部分,我有注释:"//获取事件。例如:MouseEnter, Mouseleave",
我想看看这是正在执行的MouseEnter事件还是MouseLeave事件,因为我想为每个事件做不同的事情
不可能,因为这些事件不使用EventArgs
子类。
你当然可以创建一个new StackTrace()
对象并检查frames方法名来查看它是哪个事件:)