我有一个包含TabControl的主窗体。新窗体作为TabControl中的选项卡添加。我无法更改当前活动选项卡或从TabControl不是表单的表单中关闭选项卡。我尝试访问的所有组件都是Public。
以下是我用来更改标签的代码:
Main mainForm = new Main();
mainForm.tcMain.SelectTab(mainForm.tpHome);
即使我尝试将其更改为第一个标签的索引,它也不起作用。
我还有一个主要形式的标签,我试图改变其他形式:
Main mainForm = new Main();
mainForm.labelStatus.Text = "Refreshed";
如果它有任何帮助,这就是我试图访问主表单的表单如何被称为
Table tableForm = new Table();
tableForm.TopLevel = false;
TabPage tableTab = new TabPage(tableForm.Text);
tcMain.TabPages.Add(tableTab);
tableForm.panelTable.Parent = tableTab;
tableForm.Parent = tableTab;
tcMain.SelectTab(tableTab);
tableForm.Show();
答案 0 :(得分:1)
如果为你修改的每个属性创建一个Main
的新实例,你实际上创建了很多窗体,它们彼此没有关系,它们只是坐在内存中,直到它们显示给用户。您需要的是对应用程序开始时创建的实际主窗体的引用。为此,将要修改的控件设置为公共控件,如下所示。
主要班级全球:
static public Main instance;
主类 Main_Load()方法:
instance = this;
在所有其他表单中,只需访问Main.instance
等主表单实例。所以这个
Main mainForm = new Main();
mainForm.labelStatus.Text = "Refreshed";
将成为
Main.instance.labelStatus.Text = "Refreshed";
这里重要的是将要在主窗体中修改的所有控件的访问修饰符设置为public
。