C#,菜单条特定的菜单在用户登录时打开

本文关键字:菜单 登录 用户 | 更新日期: 2023-09-27 18:17:35

在我的菜单条中,我有多种形式,

因此,在其中之一中,我只想仅在使用从我创建的登录表单传递时才可以访问。

假设菜单条,菜单在表单 1 上,登录表单是 Form2,

那么我将如何解决这个问题,以便在用户首次通过form2登录时打开菜单条表单。

整天在网上搜索,我只通过传递一个变量找到,然后如果它是真的,form1 会弹出,但它效果不佳!

C#,菜单条特定的菜单在用户登录时打开

在某个地方,您需要有一个静态布尔属性来告诉您用户是否已登录。

public static class Config {
    public static bool LoggedIn { get; private set; }
    public static Login ()
    {
        var frm = new frmLogin();
        if (frm.ShowDialog() == DialogResult.OK) {
            LoggedIn = frm.LoggedIn;
        }
    }
}

frmLogin再次有一个公共的,但这次是非静态属性LoggedIn,如果用户名和密码正常,则设置为 true。

然后,在菜单栏窗体中相应地启用或禁用窗体中的菜单项 已激活事件处理程序:

private void Form1_Activated(object sender, EventArgs e)
{
    myToolStripMenuItem.Enabled = Config.LoggedIn;
}

以为我做对了"你想从 form2 输入 form 1 或者像从 form1 修改 form2 中的某些内容">

它可能不是最好的,但有效

那么到目前为止帮助我的最简单的解决方案是你

  1. 制作从propertiespublicmenuStrip修饰符
  2. Form2中创建Form1实例
  3. Form2修改menuStrip

例如,我们可以有

Form2.cs

 public partial class ViewCars : Form
    {
        Form1 mainForm;
        public ViewCars (Form1 MainForm)
        {
           this.mainForm = MainForm;
        }
    }
     private void LoginButton_Click(object sender, EventArgs e)
     {
         mainForm.menuStrip.Visible = false;
     }

现在到当你做Form2的实例时,你需要有 give 参数this

ViewCars view = new ViewCars(this);
view.Show();

这不仅限于您可以使用它执行任何操作的控件祝你好运