问题是我有一个“登录窗口”和一个在按下登录按钮或“VISITANT”按钮后调用的“主窗口”

如果按下登录按钮,整个系统就会出来,如果我按下 VISITANT 按钮,一个标签应该消失或被阻止或其他什么。

private void visitant(object sender, EventArgs e)
{
        mainwindow menu = new mainwindow();
        menu.Show();

        //mainwindow.tabPage1.Enabled = false; //attempt1
        //mainwindow.tabPage1.Visible = false; //attempt1

        //System.Windows.Forms.tabPage1.Enabled = false;//attempt2
        //System.Windows.Forms.tabPage1.Visible = false;//attempt2

        this.Hide();
}

我使用尝试 1 遇到的错误是

错误 1 ​​'System.mainwindow.tabPage1' 由于其保护级别而无法访问'
错误 2 非静态字段、方法或属性“System.mainwindow.tabPage1”需要对象引用

我使用尝试2得到的一个是

错误 1 ​​命名空间“System.Windows.Forms”中不存在类型或命名空间名称“tabPage1”(您是否缺少程序集引用?)

正如您可能已经猜到“tabPage1”是我在按下访客按钮时需要隐藏的选项卡。

我想不出更多细节,我会提供任何额外的信息

提前致谢。

最佳答案

默认情况下,您添加到表单中的控件不公开可见。除了此详细信息外,您的“attempt1”代码将是正确的代码。

( 编辑: 以这种方式修复它,将 tabPage1 的“Modifiers”属性更改为 PublicInternal - 这允许其他类从表单外部查看这些控件。)

但是,比使这些控件可见更好的方法是在 mainwindow 类上创建一个新的公共(public)方法,如下所示:

public void HideTab()
{
   tabPage1.Enabled = false;
   tabPage1.Visible = false;
}

然后,在您的示例代码中,在创建/显示表单后调用您的新方法:
 mainwindow menu = new mainwindow();
 menu.Show();
 menu.HideTab();

关于c# - 在 C# 中使用 windows 窗体隐藏/阻止选项卡,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2713526/

10-10 05:59