我一直在努力展示标签页,实际隐藏标签页正在运行但显示我尝试了一切,但没有成功,这里是代码:
这就是我如何调用用户输入密码的表单:
private void adminToolStripMenuItem1_Click(object sender, EventArgs e)
{
Password pss = new Password();
pss.Show();
}
这是必须添加Tab-Page:
的按钮private void btnGo_Click(object sender, EventArgs e)
{
if(String.IsNullOrWhiteSpace(txtGo.Text))
{
lblErro.Text = "Type the password.";
return;
}
if(txtGo.Text != Properties.Settings.Default.Pass)
{
lblErro.Text = "Incorrect password.";
return;
}
else
{
this.Close();
MainForm main = new MainForm();
main.operatorToolStripMenuItem1.Checked = false;
main.adminToolStripMenuItem1.Checked = true;
main.accountPermissionsAdm();
}
}
这是我在用户管理时为帐户权限创建的功能:
public void accountPermissionsAdm()
{
if (!settings)
tabControl_Config.TabPages.Add(tabPage_Report);
if (!pathLoss)
tabControl_Config.TabPages.Add(tabPage_PathLoss);
if (!instrument)
tabControl_Config.TabPages.Add(tabPage_Instrument);
if (!parameters)
mainTabControl.TabPages.Add(tabPage_DefineParameters);
if (!scenario)
mainTabControl.TabPages.Add(tabPage_RunScenario);
if (!customer)
mainTabControl.TabPages.Add(tabPage_CustomerId);
IntPtr h = this.tabControl_Config.Handle;
tabControl_Config.TabPages.Insert(3, tabPage_RunCondition);
}
答案 0 :(得分:1)
更新 - 使用更多代码阅读您编辑过的问题后
几个潜在的问题:
在btnGo_Click
中,您正在调用this.Close();
,并且此else
语句中的其余代码无法访问。
即使您不打电话给this.Close();
,代码也没有实际意义,因为您正在创建MainForm
的新实例,但您没有显示它(通过致电main.Show()
或main.ShowDialog()
)。
不确定这是否属于流程,但看起来Password
是您主要表单(MainForm
)的子级。如果是这种情况,你应该改变行为,例如(有其他方法)Password
将返回一些需要更改主窗体的值(例如布尔值)(插入TabPage
等)。然后必须在主表单上执行更改,而不是从其他表单执行。
请遵循这些指南并进行更改,或考虑新设计,因为它似乎对我来说非常不妥。
原始答案(如何隐藏/显示标签页)
我担心你无法隐藏TabPage
。您将不得不删除并再次添加它。例如,像这样:
<强>隐藏强>
this.tabControl1.TabPages.Remove(tabPage1);
显示:强>
this.tabControl1.TabPages.Add(tabPage1);
根据MSDN,原因是Hide()
函数在这种情况下无效:
TabPage控件受其容器约束,因此有些 从Control基类继承的属性将不起作用, 包括顶部,高度,左侧,宽度,显示和隐藏。