在Windows窗体的选项卡控件中共享具有多个页面的按钮

问题描述 投票:0回答:1

是否可以在C#Windows Forms应用程序中与多个页面共享按钮;以便该按钮在两页或更多页中可用?

我尝试过:

this.Page1.Controls.Add(this.Button1);
this.Page2.Controls.Add(this.Button1);

但是它对我不起作用,并且按钮Button1仅在Page1中仍然可用。

c# winforms tabcontrol
1个回答
0
投票

不,您不能共享它,每个控件都属于一个父级,并且不能出现在多个父级的控件集合中。您可以使用以下任一选项:

  • 将其放在选项卡控件上,而不是在页面内部(请注意文档轮廓:]

    enter image description here

  • 在每个标签页中使用不同的按钮,但共享相同的事件处理程序

    button1.Click = new EventHanlder(button_Click);
    button2.Click = new EventHanlder(button_Click);
    ...
    private void button1_Click(object sender, EventArgs e)
    {
        //var clicked = (Button)sender;
        //Do somthing
    }
    
  • 使用单个按钮,但在选项卡选择更改中,将其移动到另一个选项卡页面:

    private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
    {
        tabControl1.SelectedTab.Controls.Add(button1);
    }
    
© www.soinside.com 2019 - 2024. All rights reserved.