1

在我的 menuStrip 我有多种形式,

因此,在其中 1 个中,我只想在使用从我创建的登录表单传递时才能访问..

比方说 menustrip,菜单在 form1 上,登录表单是 Form2,

那么,当用户第一次通过 form2 登录时,我将如何将它与菜单条表单打开..

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

4

2 回答 2

2

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

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。

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

private void Form1_Activated(object sender, EventArgs e)
{
    myToolStripMenuItem.Enabled = Config.LoggedIn;
}
于 2011-12-11T21:14:45.183 回答
0

好吧,我想我做对了“您想输入form 1fromform2或类似从 form2 修改 form1 中的某些内容”

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

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

  1. 使menuStrip修饰符从propertiespublic
  2. Form1在in创建一个实例Form2
  3. 修改menuStripForm2

例如我们可以有

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您需要给出参数,this

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

这不仅限于控件,你可以用它做任何事情祝你好运

于 2011-12-11T21:30:54.823 回答