C# 在同一窗体的TabControl中显示不同选项卡

C# 在同一窗体的TabControl中显示不同选项卡,c#,winforms,C#,Winforms,我有两个窗口 登录屏幕 主屏幕 在主屏幕上,我有一个选项卡控件,它有4个选项卡(选项卡页面) 在我的登录屏幕上,我有一个登录功能,允许用户和管理员登录。在主屏幕上,在tabControl中,我有一个选项卡页面“用户管理”,我只想在管理员登录时显示该页面 这是我的登录btn点击功能: private void button2_Click(object sender, EventArgs e) { Form1 mForm = new Form1();

我有两个窗口

  • 登录屏幕
  • 主屏幕
  • 在主屏幕上,我有一个选项卡控件,它有4个选项卡(选项卡页面)

    在我的登录屏幕上,我有一个登录功能,允许用户和管理员登录。在主屏幕上,在tabControl中,我有一个选项卡页面“用户管理”,我只想在管理员登录时显示该页面

    这是我的登录btn点击功能:

     private void button2_Click(object sender, EventArgs e)
            {
                Form1 mForm = new Form1();
    
                if (textBox3.Text.ToLower() == "admin" && textBox4.Text.ToLower() == "admin")
                {
                    mForm.Show();
                    this.Hide();
                    
                }
                else
                {
                    MessageBox.Show("Please enter valid id and password", "Incorrect Credentials", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
            }
    
    我想添加一个else条件来验证“用户”凭据,但我想在Form1 windows窗体上隐藏该选项卡页


    有什么办法吗?

    谢谢蒙珠。你的评论把我推向了正确的方向

    我能解决这个问题

    在我的家庭表格中,我添加了一个

    public bool adminLogin = false;
    
    并将我的登录名更新为单击btn:

    private void button2_Click(object sender, EventArgs e)
            {
                Form1 mForm = new Form1();
    
                if (textBox3.Text.ToLower() == "admin" && textBox4.Text.ToLower() == "admin")
                {
                    mForm.adminLogin = true;
                    mForm.Show();
                    this.Hide();
                    
                }
                else if (textBox3.Text.ToLower() == "user" && textBox4.Text.ToLower() == "user")
                {
                    mForm.Show();
                    this.Hide();
                }
                else
                {
                    MessageBox.Show("Please enter valid id and password", "Incorrect Credentials", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
            }
    
    然后在我的主表单中,在表单加载函数中,我添加了一个检查,如果adminLogin为false,则删除我不想显示的tabPage

    private void Form1_Load(object sender, EventArgs e)
            {
                if (adminlogin == false)
                {
                    tabControl2.TabPages.Remove(tabPage3);
                }
    
            }
    

    如果一个人是用户或管理员,你到底是如何登录的?我使用的是硬编码的“Admin”和“User”。我不是从安全的角度来看这个问题。我只是想寻找一种方法来隐藏一个标签页,如果用户id和密码是“admin”,那么您的
    Form1
    从登录表单接收关于admin或user的信息是合乎逻辑的。您需要在
    Form1
    中设置一个属性,可以从登录表单中设置该属性以隐藏选项卡页面,但您不能这样做。您需要以编程方式将其从选项卡控件中删除。如中所述