繁体   English   中英

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

[英]How to clone button between tabs C# Visual Studio 2015

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

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

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

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

您可能只需要在TabControl前面而不是其中一个标签页上添加按钮,因此它将显示在所有标签页上,但是如果您必须更改其位置,则应以编程方式更改按钮的位置每次您切换到其他标签页时。 另外,如果您不需要在某些标签页上显示该标签,则应使其在该标签页上不可见。 无论如何,我真的不喜欢这样,但我希望在每个选项卡上添加所需的所有按钮,并将所有按钮连接到同一事件的处理程序上。

注意 :如果无法在选项卡控件的前面添加按钮,则可以使用视图>其他Windows>文档大纲进行更改。

创建一个通用函数,随时添加更多参数以使其更加灵活:

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);

在开发人员代码中创建按钮。 然后,稍后在切换选项卡时使用引用将其添加到每个选项卡的控件中。 例如

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。

将新的用户控件添加到您的项目中,并单击带有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 ...........

    }
}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM