如何在选项卡C#Visual Studio 2015之间克隆按钮

时间:2017-03-30 10:00:43

标签: c# visual-studio button clone tabcontrol

Example

嗨!如何克隆其他选项卡上的按钮?我需要在许多标签中使用相同的按钮,相同的按钮具有相同的属性,相同的代码,相同的事件,相同的名称等。

“压缩文件”按钮在Tab1,Tab4,Tab6和Tab8中将是相同的...在许多选项卡中将执行相同的操作,因此我不希望每次都创建一个新按钮。我不想制作10000个按钮来做同样的事情。

我需要克隆许多按钮,而不仅仅是“压缩文件”,这就是为什么我不能只将“压缩文件”放在TabControl之外并使其不可见或可见。

我正在使用C#开发Visual Studio 2015。

4 个答案:

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

    }
}

您可以在任何您想要的地方使用它。