2017-01-22 78 views
0

所以我想密碼保護添加到我的列表中的文本框。正如我在文本框中輸入文本並獲得一個彈出窗口詢問密碼。那可能嗎?下面我會插入代碼片段。如何密碼保護一個文本框,以保護winform c中的輸入#

private void button6_Click_1(object sender, EventArgs e) 
     { 

      BlockList.Add (textBox2.Text);    // adds url to block list 


     } 

     private void button7_Click_1(object sender, EventArgs e) 
     { 
      BlockList.Remove(textBox2.Text); 
     } 

回答

1

如果我有你的權利,你需要創建具有文本框和按鈕作爲一個單獨的類costum形式,那麼,你需要創建一個類的實例,並調用.showDialog()方法,那麼用戶只能在對話框中輸入一些東西(如MessageBox)。之後,您將需要從班級獲取輸入的密碼,並在密碼正確的情況下撤消(我假設您只需要一個「簡單」保護,而不是加密密碼)。 我想到的最簡單的解決方案是將您的密碼傳遞給其他課程,然後檢查密碼是否正確,並返回您需要忽略的DialogResult。 Somethig像這樣(爲你的方法button_6_Click_1()):

const string password = "123456789"; //just an example password 

      string url = textBox1.Text; 

      // Get if the user entered the right password 
      GetPass pass = new GetPass(password); 

      // Check this with a dialog result 
      DialogResult result = pass.ShowDialog(); 

      if (result == DialogResult.OK) 
      { 
        BlockList.Add(url); 
        MessageBox.Show("Added " + url + " to blocklist."); 
        textBox1.Clear(); 

      } 

這對於其他的WinForm類代碼:

public partial class GetPass : Form 
    { 
     // Use a texBox called textBox1 and a button called btn_confirm 
     private string refPassword; 

     public GetPass(string password) 
     { 
      InitializeComponent(); 
      refPassword = password; 
     } 

     private void btn_confirm_Click(object sender, EventArgs e) 
     { 
      string password = textBox1.Text; 
      if (password.CompareTo(refPassword) == 0) 
      { 
       this.DialogResult = DialogResult.OK; 
      } 
     } 
    } 

我會讓你做擴展這方面的工作。

+0

@Sharabeel你可能不想檢查這兩個密碼是否直接匹配,但是如果他們的散列(例如md5)匹配,但那是一個更高級的主題。 – 97hilfel