2013-11-22 3 views
0

Я создал пользовательскую форму для входа. Когда пользователь нажимает на инструмент menustrip, я показываю форму входа. Если он вводит правильное имя пользователя и пароль, я хочу, чтобы эта форма была закрыта и отключена, а инструмент в menustrip будет нормально активирован, как любой обычный инструмент в menustrip, не показывая эту форму еще раз.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 
    } 
} 
Смежные вопросы