2013-11-22 86 views
0

我已经创建了一个自定义登录表单。当用户点击菜单栏工具时,我会显示登录表单。如果他输入了正确的用户名和密码,我希望这个表单被关闭和禁用,并且菜单栏上的工具将正常激活,如同菜单栏中的任何常规工具,而不再显示此表单。menustrip和自定义消息框

自定义登录表单的形象是:

enter image description here

当登录用户按下,我想禁用的形式,不要再即使用户再次按下工具上显示。

+0

你到目前为止尝试过什么?在登录表单上创建一个公共属性(如IsLoggedIn)。如果登录成功,请将该属性设置为“True”并关闭表单。当控制权返回到菜单条点击事件时,只需在处理登录表单实例之前检查该值,如果为真,则禁用该特定菜单项,以使其不能再次单击。没有更多的代码或什么的,我只是在黑暗中刺... –

回答

1

您应该可能禁用菜单按钮。这是伪代码,接近真实 - 将做的伎俩:

bool _loggedOnALready; 
void menustripLogon_click() 
{ 
    // if you want to disable menu - use this block 
    if (form.showdialog() == dialogresult.Ok) 
    { 
     menustripLogon.enabled = false; 
    } 

    // But if you want to be able to press the button but no form show: 
    if (!_loggedOnALready && (form.showdialog() == dialogresult.Ok)) 
    { 
     _loggedOnALready = true; 
    } 

} 

class formLogon 
{ 
    void Ok_click() 
    { 
     if (LogonSuccess()) 
     { 
      this.dialogResult = dialogresult.Ok; 
      this.close(); 
     } 
     else 
     { 
      this.dialogResult = dialogresult.Cancel; 
      // you probably want keep it open for retry 
     } 
    } 

    bool LogonSuccess() 
    { 
     // logon here 
    } 
}