在我的 menuStrip 我有多种形式,
因此,在其中 1 个中,我只想在使用从我创建的登录表单传递时才能访问..
比方说 menustrip,菜单在 form1 上,登录表单是 Form2,
那么,当用户第一次通过 form2 登录时,我将如何将它与菜单条表单打开..
我整天在网上搜索,我只通过传递一个变量找到,然后如果它是真的,form1 会弹出,但效果不好!
在某个地方,您需要有一个静态布尔属性来告诉您用户是否已登录。
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;
}
好吧,我想我做对了“您想输入form 1
fromform2
或类似从 form2 修改 form1 中的某些内容”
它可能不是最好的,但有效
到目前为止,帮助我的最简单的解决方案是你
menuStrip
修饰符从properties
到 public
Form1
在in创建一个实例Form2
menuStrip
自Form2
例如我们可以有
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();
这不仅限于控件,你可以用它做任何事情祝你好运