2013-10-30 215 views
4

快速的問題:VisualBasic中的InputBox取消

我使用的是Microsoft.VisualBasic.Interaction.InputBox在我的C#代碼,讓用戶的網站添加到列表中,但我不想讓他們進入一個空字符串,所以我給出一個錯誤彈出以防止發生。但是,如果用戶按下「取消」,該錯誤也會彈出,我不想發生這種情況。

閱讀關於它的文檔說按「取消」返回一個空字符串,因此它爲什麼會引發錯誤。有沒有辦法來定義用戶用空字符串或「取消」按下「好嗎」?

由於提前,

-Peter

+2

不這麼認爲,在輸入框是相當有限的。如果您需要正確實施,您應該編寫自己的對話框。 – stevepkr84

+0

感謝您的幫助! – Voidpaw

回答

7

你不能做到這一點。從MSDN

如果用戶單擊取消,則返回零長度的字符串。

Dim result As String = Microsoft.VisualBasic.InputBox("Enter some text") 
    If result.Length > 0 Then 
     Debug.WriteLine("Something entered and OK Clicked") 
    Else 
     Debug.WriteLine("Cancel Button Clicked OR Blank String Entered and OK Clicked") 
    End If 

最簡單的辦法就是創建自己的簡單的輸入形式和測試DialogResult

+0

不幸的是,他們並沒有在這裏保留[原始VB行爲](http://stackoverflow.com/a/20909528/11683)。 – GSerg

+0

DOT.NET包裝器將此輸出初始化爲「」而不是null。如果Okay被按下,TextBox的內容被分配給this.Output(可能是一個空字符串「」),如果Cancel沒有被賦值。因此你無法區分這兩種結果。有些人將默認值初始化爲「」作爲解決方法。 – dmc2005

-4
string a; 
      a = Interaction.InputBox("message", "title"); 
      if (a.Length > 0) 
      { 
       comboBox2.Items.Add(a); 
       // ok 
      } 
      else 
      { 
       // cancel 
      }