我有2个窗体文件 Login  和 MainForm  1.  Login窗体做用户登录文件. MainForm窗体是菜单文件.  
 
提问:在Login窗体登录按钮里,想隐藏MainForm窗体里的某个项目,如何隐藏吗?   备注:制作菜单MenuStrip工具.
MainForm代码   先隐藏全部菜单.
 private void MainForm_Load(object sender, EventArgs e)
        {
            this.库存管理ToolStripMenuItem.Visible = false;    
            this.销售管理ToolStripMenuItem.Visible = false;
            this.帮助ToolStripMenuItem.Visible = false;
            this.退出ToolStripMenuItem.Visible = false;
            login();        }
Login代码:  private void 登录_Click(object sender, EventArgs e)
        {
          根据用户名,显示菜单(库存管理或销售管理)
         即( 如何调用MainForm窗体,显示库存管理菜单)
          
        库存管理ToolStripMenuItem.Visible  //错误代码
        }望朋友们能给我满意答复!
对所有回复者表示感谢!!

解决方案 »

  1.   

    用session接收用户的信息,在数据库里应该有用户表的一个列表示用户级别,把这个级别调出来,放在session里通过这个级别设置,visble属性的真和假,
    我一般都是这么做,权限,要看数据库了,看里面用户信息的值
      

  2.   

    IT聪明用电脑高级交流群 
    {疯狂电脑迷交流平台} 
    (QQ群46108513)
      

  3.   

    大致思路是这样的:
    把userName保存在全局静态变量中,
    在MainForm的FormLoad事件中根据userName判断权限,进而判断显示那些菜单,
    前提是:建立一个用户角色表
    private void MainForm_Load(object sender, EventArgs e) 
            { 
                if(用户是管理员) //如果是管理员的话,就全显示,只要把下面的语句注释掉就行了
                  {
                  //this.库存管理ToolStripMenuItem.Visible = false;    
                  //this.销售管理ToolStripMenuItem.Visible = false; 
                  //this.帮助ToolStripMenuItem.Visible = false; 
                  //this.退出ToolStripMenuItem.Visible = false; 
                 }
                 else if(……)
                    {
                   ……
                  }
            } 
      

  4.   

    在窗体控件设计器里面把要在多个窗体中 调用的控件的访问修饰符 private 或protected
    改成 public
    调用时用 该控件所在窗体的  实例对象.控件.visible=false;这样应该可以的
      

  5.   

    各位不好意思!可能我表达的还不是很清楚.
    我的意思是在   Login 窗体里  登录按纽  如何调用 MainForm窗体里  个别 菜单要显示出来(visible=true);
      

  6.   

    Login代码:   private void 登录_Click(object sender, EventArgs e) 
            { 
              
              用户暂不管.
               如何调用MainForm 窗体,显示菜单项(库存管理.visible=true).
             ??? MainForm menu=new MainForm();
             ??? menu.库存管理.visible=true   //
            } 
     关键是如何MainForm 我不会.     
     谢谢大家对我支持和回复.
      

  7.   

    楼主,你非得要在你的login显示主窗体的东西吗 ?在你登陆成功之后  在主窗体的formlode去判断不行吗?只不过用用户的权限去判断,这种是很简单的,你要复杂点的   你就建立个权限表和用户还有各个表关联起来去专门做个模块。
      

  8.   

    1 自己写逻辑
    2 Membership
    3 数据库权限结构
      

  9.   

    也遇到搂主那样的情况,2个窗体文件 form1  和 form21.form1窗体做用户登录文件;form2窗体是菜单文件.  提问:在form1窗体登录按钮里,想隐藏form2窗体里的某个项目,如何隐藏吗? 我是这样写的,但执行后没变化
            private void button1_Click(object sender, EventArgs e)
            {
                
               
                if ((textBox1.Text == "") || (textBox2.Text == ""))
                {
                    MessageBox.Show("用户名或密码不能为空");
                }
                else 
                {
                    SqlConnection cn = new SqlConnection(@"data source=LWB-PC\ZZULI_SOFT;database=dingcan;uid=sa;pwd=123");
                    cn.Open();
                    SqlCommand cmd = new SqlCommand("select * from uuser where uname='" + textBox1.Text + "'and upassword='" + textBox2.Text + "'", cn);
                    SqlDataReader sdr = cmd.ExecuteReader();
                    sdr.Read();
                    if (sdr.HasRows)
                    {                      
                        Form2 fr = new Form2();
                        fr.Show();
                        this.Hide();
                        string up = sdr["upower"].ToString().Trim();
                        fr.power = up;
                       
                    }
                    else
                    {
                        MessageBox.Show("请输入正确的用户名或密码");
                    }
                   
                }
              
            }
    认为红色部分可能错误,但说不出个所以然望能给与解决
    在此先谢谢了!!