在 Windows 表单的选项卡控件中共享具有多个页面的按钮
Share a button with multiple pages in a Tab Control in Windows Forms
有没有办法在 C# Windows Forms 应用程序中与多个页面共享一个按钮;以便按钮在两页或更多页中可用?
我试过了:
this.Page1.Controls.Add(this.Button1);
this.Page2.Controls.Add(this.Button1);
但它对我不起作用,按钮 Button1
仍然仅在 Page1
中可用。
不可以共享,每个控件属于一个父控件,不能在多个父控件之间共享。您可以使用以下任一选项:
使用单个按钮,但在选项卡选择更改时,将其移动到另一个选项卡页:
private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
// Will be removed from previous tab and added to new selected tab
tabControl1.SelectedTab.Controls.Add(button1);
}
在每个标签页中使用不同的按钮但共享相同的事件处理程序
button1.Click += button_Click;
button2.Click += button_Click;
...
private void button_Click(object sender, EventArgs e)
{
//var clicked = (Button)sender;
//Do somthing
}
放在选项卡控件之上,而不是页面内部(注意文档大纲):
有没有办法在 C# Windows Forms 应用程序中与多个页面共享一个按钮;以便按钮在两页或更多页中可用?
我试过了:
this.Page1.Controls.Add(this.Button1);
this.Page2.Controls.Add(this.Button1);
但它对我不起作用,按钮 Button1
仍然仅在 Page1
中可用。
不可以共享,每个控件属于一个父控件,不能在多个父控件之间共享。您可以使用以下任一选项:
使用单个按钮,但在选项卡选择更改时,将其移动到另一个选项卡页:
private void tabControl1_SelectedIndexChanged(object sender, EventArgs e) { // Will be removed from previous tab and added to new selected tab tabControl1.SelectedTab.Controls.Add(button1); }
在每个标签页中使用不同的按钮但共享相同的事件处理程序
button1.Click += button_Click; button2.Click += button_Click; ... private void button_Click(object sender, EventArgs e) { //var clicked = (Button)sender; //Do somthing }
放在选项卡控件之上,而不是页面内部(注意文档大纲):