如何将视图,控件等从main传递给用户控件

时间:2014-05-13 18:34:39

标签: c# winforms visual-studio view user-controls

我需要以某种方式将tabControl传递给我的用户控件,以便我可以在用户控件中访问它。

用户控件上有一个按钮,我想将标签索引更改为不同的按钮。当我尝试从用户控件访问tabControl时,它根本找不到它。

1 个答案:

答案 0 :(得分:2)

您可以在用户控件中创建一个方法,该方法将采用TabControl的实例进行操作,如下所示:

public partial class MyUserControl : UserControl{
    private TabControl _tabControl;

    public MyUserControl() {
        InitializeComponent();
    }

    public void AssignTabControl(TabControl tabControl) {
        _tabControl = tabControl;
    }

    private void buttonNextTab_Click(object sender, EventArgs e) {
        // this is merely an example.
        _tabControl.SelectedIndex += 1;
    }
}

现在,假设您已经将用户控件和选项卡控件都添加到包含表单中,您可以提供选项卡控件实例,或者从表单的构造函数中进行操作,如下所示:

public partial class MainForm : Form  {
    public MainForm() {
        InitializeComponent();
        myUserControl1.AssignTabControl(tabControl1);
    }
}

这里的好处与仅通过构造函数提供选项卡控件实例相反,您可以保留设计器支持。但缺点是,如果您没有分配选项卡控件实例,则会遇到异常。