动态添加控件[例如Button]:如何添加事件和Access

时间:2009-09-17 08:43:34

标签: c# controls

在我的程序中,我动态地将Buttons添加到我的表单

{
   ...
   Button bt = new Button();
   bt.Text = "bla bla";
   bt.MouseClick += new MouseEventHandler(bt_MouseClick);
   myPanel.Controls.Add(bt);
   ... 
}

void bt_MouseClick(object sender, MouseEventArgs e)
{
    TabPage _tab = new TabPage();
    _tab.Text =  ??? // I want to get the Button's text ! this.Text returns me the
                     //main form.Text 
}

如何访问我的动态按钮属性?我怎么能理解whick按钮 点击获取其文本。

感谢。

2 个答案:

答案 0 :(得分:2)

void bt_MouseClick(object sender, MouseEventArgs e)
{
    TabPage _tab = new TabPage();
    _tab.Text =  ((Button)sender).Text;
}

答案 1 :(得分:1)

调用EventHandler delegate时,sender参数是引发事件的组件,e参数是EventArgs的子类,提供任何其他组件/事件的事件特定信息。

因此,您可以通过将sender参数转换为Button来确定触发事件的按钮:

void bt_MouseClick(object sender, MouseEventArgs e)
{
    var button = (Button)sender;
    TabPage _tab = new TabPage();
    _tab.Text =  button.Text;
}