C#,菜单条特定的菜单在用户登录时打开
本文关键字:菜单 登录 用户 | 更新日期: 2023-09-27 18:17:35
在我的菜单条中,我有多种形式,
因此,在其中之一中,我只想仅在使用从我创建的登录表单传递时才可以访问。
假设菜单条,菜单在表单 1 上,登录表单是 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。
然后,在菜单栏窗体中相应地启用或禁用窗体中的菜单项 已激活事件处理程序:
private void Form1_Activated(object sender, EventArgs e)
{
myToolStripMenuItem.Enabled = Config.LoggedIn;
}
以为我做对了"你想从 form2
输入 form 1
或者像从 form1 修改 form2 中的某些内容">
它可能不是最好的,但有效
那么到目前为止帮助我的最简单的解决方案是你
- 制作从
properties
到public
的menuStrip
修饰符 - 在
Form2
中创建Form1
实例 - 从
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();
这不仅限于您可以使用它执行任何操作的控件祝你好运