C#在不同窗体中设置菜单menuStrip可用或不可用(或者使之变灰)
求救:我第一个Form有menuStrip1,其中有一个子菜单是“登录”,运行时,点“登录”会弹出一个新的Form3,Form3上有个button"确定",我想首先设置那...
求救:我第一个Form有menuStrip1,其中有一个子菜单是“登录”,运行时,点“登录”会弹出一个新的Form3,Form3上有个button"确定",我想首先设置那些菜单不可用,当点击“确定”成功登录后设置菜单可用。
回答满意,我还有分追加。这个好商量。急用 展开
回答满意,我还有分追加。这个好商量。急用 展开
2个回答
展开全部
以下程序测试通过。
假设你有菜单的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();
}
/// <summary>
/// FORM1的LOAD事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form1_Load(object sender, EventArgs e)
{
登录ToolStripMenuItem.Enabled = true;
//让文件菜单不可用
文件ToolStripMenuItem.Enabled = false;
/*
把你其他菜单也按照文件菜单的写法,使其不可用
*/
}
/// <summary>
/// FORM1中单击登录菜单的事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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
/// <summary>
/// FORM3的构造函数,把FORM1传递进来
/// </summary>
/// <param name="_parent"></param>
public Form3(Form1 _parent)
{
InitializeComponent();
parent = _parent;
}
/// <summary>
/// FORM3中单击确定按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void buttonOK_Click(object sender, EventArgs e)
{
//你自己写判断是否登录成功的语句
//当判断登录成功后,执行下列代码。
//让文件菜单可用
parent.文件ToolStripMenuItem.Enabled = true;
/*
把你其他菜单也按照文件菜单的写法,使其可用
*/
//让登录菜单不可用,以免用户再次登录,当然你根据自己需要,可以让其可用。
parent.登录ToolStripMenuItem.Enabled = false;
this.Close();
}
}
}
假设你有菜单的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();
}
/// <summary>
/// FORM1的LOAD事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form1_Load(object sender, EventArgs e)
{
登录ToolStripMenuItem.Enabled = true;
//让文件菜单不可用
文件ToolStripMenuItem.Enabled = false;
/*
把你其他菜单也按照文件菜单的写法,使其不可用
*/
}
/// <summary>
/// FORM1中单击登录菜单的事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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
/// <summary>
/// FORM3的构造函数,把FORM1传递进来
/// </summary>
/// <param name="_parent"></param>
public Form3(Form1 _parent)
{
InitializeComponent();
parent = _parent;
}
/// <summary>
/// FORM3中单击确定按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void buttonOK_Click(object sender, EventArgs e)
{
//你自己写判断是否登录成功的语句
//当判断登录成功后,执行下列代码。
//让文件菜单可用
parent.文件ToolStripMenuItem.Enabled = true;
/*
把你其他菜单也按照文件菜单的写法,使其可用
*/
//让登录菜单不可用,以免用户再次登录,当然你根据自己需要,可以让其可用。
parent.登录ToolStripMenuItem.Enabled = false;
this.Close();
}
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询