2015-04-21 27 views
0

如何从不同的表单调用某个选项卡?我有一个单独的窗体中的按钮,当用户点击它时,它应该将它们带到主窗体中的标签页。c#以不同的形式打开特定的选项卡

按钮

private void submitButton_Click(object sender, EventArgs e) 
{ 
    Form form1 = new Form(); 
    //Call a certain Tab in the Main Form   
} 
+1

这可能是一个良好的开端: http://stackoverflow.com/questions/610313/listening-to-events-in-main-form-from-another-form-in -c-sharp –

+0

您显然需要对主窗体的引用,并且主窗体应显示功能以选择所需的选项卡。我会使用一些接口去耦这种交互。 – Andrew

+0

我认为你可以自由地从代码中关闭表单*(例如在按钮点击处理程序中)。您将首先关闭打开的表格,然后切换到所需的选项卡。为了激活一个标签,只需调用'tabs.SelectedTab = staticTab;',其中staticTab是您在某处“记住”的标签,标签是您的TabControl。 –

回答

0

的问题是有点含糊,但答案应该很简单。 首先在第二个表单中创建对第一个表单的引用,可能在构造函数中。

Form mainForm; 
public SecondForm(Form mainForm){ 
    this.mainForm = mainForm; 
} 

然后你可以在你的按钮事件函数中引用。

private void submitButton_Click(object sender, EventArgs e) 
{ 
    mainForm.YourTabControl.SelectedIndex = indexyouwant; 
} 
+0

提交按钮的形式应该导致该TabPage(MainForm)。提交按钮不在MainForm中。 – user122938221

-1

在Form1中定义的方法来切换标签

public void ChangeTab(int tabIndex) 
{ 
     YourTabControl.SelectedIndex = tabIndex; 
} 

调用它在其它形式:

private void submitButton_Click(object sender, EventArgs e) 
{ 
    Form form1 = new Form(); 
    form1.ChangeTab(2); 
    //Call a certain Tab in the Main Form   
} 
+1

这将改变form1的新实例,而不是已经打开的实例。 – horHAY

+0

您必须创建form1作为全局变量,然后在单击时访问此实例一个按钮 –

+0

您是否在Form1类中定义了ChangeTab(TabControl属于的窗体) –

相关问题