我制作了一个自定义按钮,其中包含一个名为Data
的字段。
我在运行时以编程方式将此按钮添加到我的winform中,并且在添加时我还为它们定义了一个click事件。好吧,实际上我只有一个方法,我订阅了新添加的按钮到这个方法。
但是在点击事件中,我想要访问此Data
字段并将其显示为消息框,但似乎我的投射不正确:
CustomButton_Click(object sender, EventArgs e)
{
Button button;
if (sender is Button)
{
button = sender as Button;
}
//How to access "Data" field in the sender button?
//button.Data is not compiling!
}
更新:
对不起,我发誓“没有编译”.Data
没有出现在知识产权中......
答案 0 :(得分:5)
您需要强制转换为具有数据字段的自定义类的类型。
类似的东西:
YourCustomButton button = sender as YourCustomButton;
答案 1 :(得分:3)
假设您的自定义按钮类型为CustomButton
,则应执行此操作:
CustomButton_Click(object sender, EventArgs e){
CustomButton button = sender as CustomButton;
if (button != null){
// Use your button here
}
}
答案 2 :(得分:0)
如果您不想设置变量,那么简单的方法是:
((CustomButton)sender).Click
或任何您想要的。