2016-05-16 41 views
-5

我對這個網站和編碼一般都很陌生,所以我很抱歉,如果這是簡單的。 我的主窗體上有一個按鈕,單擊它時會打開另一個提示輸入密碼的窗體。我希望能夠在關閉表單之前檢查密碼是否正確,但如果錯誤,我希望表單保持打開狀態,以便用戶可以再次嘗試。這是我開始:無法防止密碼輸入從C#關閉窗體#

public partial class passwordEntry : Form 
    { 
     public passwordEntry() 
     { 
      InitializeComponent(); 
      passBox.Text = string.Empty; 
     } 

     private void passwordAccept_Click(object sender, EventArgs e) 
     { 
      string pass = passBox.Text; 

      if (pass.Equals("notmyrealpassword")) 
      { 
       MessageBox.Show("You entered the correct password!"); 
      } 

      else 
      { 
       MessageBox.Show("Incorrect password. Please try again."); 
      } 
     } 
    } 

然後,基於一些搜索,我添加了「bool check = false;」在主要公衆呼叫之前,「check = true;」在成功的MessageBox,這到底:

private void passEntry_FormClose(object sender FormClosingEventArgs e) 
    { 
     if (!check) 
     { 
      e.Cancel = true; 
     } 
    } 

最終結果時,Visual Studio不會讓我編譯由於

錯誤CS1003語法錯誤, '' 預期。

幫助?

+1

這是一個新手的錯誤,如果你雙擊了該編譯錯誤VS會顯示你行,問題是上。那麼你所需要做的就是給那條線丟失「它」的預期。在YouTube上查看一些基本的調試視頻。 –

回答

4

你應該把「」方法參數之間:

private void passEntry_FormClose(object sender, FormClosingEventArgs e) // here "," after "sender" 
{ 
    if (!check) 
    { 
     e.Cancel = true; 
    } 
} 
+0

謝謝你的迴應。這確實解決了我的編譯錯誤,但我仍然無法防止密碼輸入表單關閉錯誤的密碼。 – TheManofSpiel

+0

調試您的代碼並查看檢查變量的值,我認爲,問題在於,因爲您的代碼阻止關閉是正確的 –