2017-03-26 15 views
0

轉換我有以下代碼:無法從「system.windows.forms.messagebox」到「字符串」

public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     string code = "111-222-73"; 
     if (Namebox.Text == "" || Codebox.Text == "") 

      MessageBox.Show("Please fill a valid login!", MessageBoxIcon.Exclamation); 
     else if (Codebox.Text == code) 

      MessageBox.Show("Login succesfull!"); 
     else MessageBox.Show("Wrong code!"); 


    } 

當我使用這將引發錯誤messageboxIcon,但如果我不使用它時, messagebox將工作。這也適用於其他消息框。有人可以告訴我爲什麼以及如何解決這個問題。

剛換的形式vb.net到C#

回答

1

您沒有使用正確的overload包含MessageBoxIcon參數:

MessageBox.Show("Please fill a valid login!", "", 
       MessageBoxButtons.OK, MessageBoxIcon.Exclamation); 

有在.NET框架沒有內置的方法滿足你的需求,但你可以創建一個幫手方法來做到這一點:

public static class MessageBoxHelper 
{ 
    const string _defaultCaption = "Message"; 
    const MessageBoxButtons _defaultButtons = MessageBoxButtons.OK; 

    public static void Show(string message, MessageBoxIcon icon) 
    { 
     MessageBox.Show(message, _defaultCaption, _defaultButtons, icon); 
    } 
} 
+0

因此,你需要輸入它總是這樣嗎?如果你說不介意messageboxButtons,你不能跳過它們,你仍然需要寫下它們嗎? – Emre

+0

@Emre檢查編輯的答案。 – user3185569

+0

第二個代碼比我能理解的更多。任何解釋和更多細節? – Emre