识别点击事件中的发件人按钮控件

时间:2012-07-08 22:00:40

标签: c# winforms custom-controls

我制作了一个自定义按钮,其中包含一个名为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没有出现在知识产权中......

3 个答案:

答案 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

或任何您想要的。