C#在不同窗体中设置菜单menuStrip可用或不可用(或者使之变灰)

2025-01-05 06:08:44
推荐回答(2个)
回答1:

以下程序测试通过。
假设你有菜单的FORM为FORM1,下面的示例中只添加两个菜单:登录和文件
FORM1代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace 登录实验
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
///


/// FORM1的LOAD事件
///

///
///
private void Form1_Load(object sender, EventArgs e)
{
登录ToolStripMenuItem.Enabled = true;

//让文件菜单不可用
文件ToolStripMenuItem.Enabled = false;
/*
把你其他菜单也按照文件菜单的写法,使其不可用
*/

}

///
/// FORM1中单击登录菜单的事件
///

///
///
private void 登录ToolStripMenuItem_Click(object sender, EventArgs e)
{
Form3 formLogin = new Form3(this);
formLogin.ShowDialog();
}
}
}

FORM3代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace 登录实验
{
public partial class Form3 : Form
{
private Form1 parent;//定义主窗体的一个成员,表示FORM1

///
/// FORM3的构造函数,把FORM1传递进来
///

///
public Form3(Form1 _parent)
{
InitializeComponent();
parent = _parent;
}
///
/// FORM3中单击确定按钮
///

///
///
private void buttonOK_Click(object sender, EventArgs e)
{
//你自己写判断是否登录成功的语句
//当判断登录成功后,执行下列代码。

//让文件菜单可用
parent.文件ToolStripMenuItem.Enabled = true;
/*
把你其他菜单也按照文件菜单的写法,使其可用
*/

//让登录菜单不可用,以免用户再次登录,当然你根据自己需要,可以让其可用。
parent.登录ToolStripMenuItem.Enabled = false;

this.Close();
}
}
}

回答2:

还要将“文件ToolStripMenuItem”的“Modifiers”属性由"Private"改为"Public"