如何从不同的表单调用某个选项卡?我有一个单独的窗体中的按钮,当用户点击它时,它应该将它们带到主窗体中的标签页。c#以不同的形式打开特定的选项卡
按钮
private void submitButton_Click(object sender, EventArgs e)
{
Form form1 = new Form();
//Call a certain Tab in the Main Form
}
如何从不同的表单调用某个选项卡?我有一个单独的窗体中的按钮,当用户点击它时,它应该将它们带到主窗体中的标签页。c#以不同的形式打开特定的选项卡
按钮
private void submitButton_Click(object sender, EventArgs e)
{
Form form1 = new Form();
//Call a certain Tab in the Main Form
}
的问题是有点含糊,但答案应该很简单。 首先在第二个表单中创建对第一个表单的引用,可能在构造函数中。
Form mainForm;
public SecondForm(Form mainForm){
this.mainForm = mainForm;
}
然后你可以在你的按钮事件函数中引用。
private void submitButton_Click(object sender, EventArgs e)
{
mainForm.YourTabControl.SelectedIndex = indexyouwant;
}
提交按钮的形式应该导致该TabPage(MainForm)。提交按钮不在MainForm中。 – user122938221
在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
}
这将改变form1的新实例,而不是已经打开的实例。 – horHAY
您必须创建form1作为全局变量,然后在单击时访问此实例一个按钮 –
您是否在Form1类中定义了ChangeTab(TabControl属于的窗体) –
这可能是一个良好的开端: http://stackoverflow.com/questions/610313/listening-to-events-in-main-form-from-another-form-in -c-sharp –
您显然需要对主窗体的引用,并且主窗体应显示功能以选择所需的选项卡。我会使用一些接口去耦这种交互。 – Andrew
我认为你可以自由地从代码中关闭表单*(例如在按钮点击处理程序中)。您将首先关闭打开的表格,然后切换到所需的选项卡。为了激活一个标签,只需调用'tabs.SelectedTab = staticTab;',其中staticTab是您在某处“记住”的标签,标签是您的TabControl。 –