我有一个 WinForms 应用程序,其中包含多个映射到同一处理程序的菜单项命令。我使用菜单项的Tag
属性来确定处理程序的行为方式。
问题是,处理程序的sender
参数是类型object
。那么如何读取Tag
对象的属性呢?
我知道我可以转换sender
为我的菜单项的类型,但是如果我想要一个按钮或其他控件映射到同一个处理程序怎么办?是否有一种通用的方法可以Tag
从发送者的任何对象中读取属性?
这是我到目前为止所拥有的。它似乎工作。但是没有更精简的方法吗?
private void Header_Click(object sender, EventArgs e)
{
dynamic ctrl = sender as dynamic;
if (ctrl != null && sender.GetType().GetProperty("Tag") != null)
{
// Go ahead and reference ctrl.Tag
}
}