嗨!如何克隆其他选项卡上的按钮?我需要在许多标签中使用相同的按钮,相同的按钮具有相同的属性,相同的代码,相同的事件,相同的名称等。
“压缩文件”按钮在Tab1,Tab4,Tab6和Tab8中将是相同的...在许多选项卡中将执行相同的操作,因此我不希望每次都创建一个新按钮。我不想制作10000个按钮来做同样的事情。
我需要克隆许多按钮,而不仅仅是“压缩文件”,这就是为什么我不能只将“压缩文件”放在TabControl之外并使其不可见或可见。
我正在使用C#开发Visual Studio 2015。
答案 0 :(得分:0)
您可能只需在TabControl
前面添加按钮,而不是在其中一个标签页上添加按钮,因此它会显示在所有标签页上,但如果您需要更改其位置,则应该每次切换到其他标签页时,以编程方式更改按钮的位置。此外,如果您不需要在某些标签页上显示它,那么您应该在该标签页上将其隐藏起来。
无论如何,我真的不喜欢这样做,但我宁愿在每个标签上添加我需要的所有按钮,并将它们全部连接到相同的事件上。处理程序。
注意:如果您无法在标签控件前添加按钮,则可以使用view>其他Windows>文档大纲来改变它。
答案 1 :(得分:0)
创建一个通用函数,随意添加更多参数以使其更灵活:
void CreateButton(TabControl tc, string text, EventHandler click)
{
Button button = new Button();
button.Width = 100;
button.Height = 100;
button.ForeColor = Color.Blue;
button.Text = text;
button.Click += click;
tc.Controls.Add(button);
}
用法:
CreateButton(Tab1, "Compress file", Button_Click);
答案 2 :(得分:0)
在开发人员代码中创建按钮。然后在使用该引用时,在切换选项卡时将其添加到每个选项卡的控件中。例如
public MyForm()
{
Initialize();
Button MyOneTrickButton = new Button();
//Create button with all attributes and actions
...
}
void MyTabControl_SelectedIndexChanged(object sender, EventArgs e)
{
MyTabControl.SelectedTab.Controls.Add(MyOneTrickButton);
}
第二个选项是创建一个包含按钮的自定义TabControl,并在向表单添加选项卡时使用它而不是普通的TabControl。
答案 3 :(得分:0)
将新用户控件添加到项目中,并使用Click事件添加按钮。 代码背后:
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
}
// Add some public properties to Caculate
public string SomeProperties { get; set; }
private void button1_Click(object sender, EventArgs e)
{
// Some tasks that you often do ...........
}
}
您可以在任何您想要的地方使用它。