2015-06-12 79 views
0
textbox1.text = "OS = " combobox1.selecteditem + environment.newline + 
combobox2.selecteditem + environment.newline + combobox3.selecteditem + 
environment.newline  

使用Visual Basic 2010時 我試圖讓顯示器顯示爲 工作「OS =」和讓說,我選擇了「combobox3」我希望它看起來像 「OS = Windows的」 代替如何編碼,只顯示我選擇的組合框?

「OS =

Windows的」

做我的代碼,所以票價

+0

檢查在添加到字符串之前,combobox是否具有SelectedItem。顯示如何將項目添加到組合框 – Fabio

+0

編寫代碼以檢查哪些控件已選擇項目 – Plutonix

回答

0

字符串連接應該做的事用&代替+。另外,刪除environment.newline以擺脫換行符。

textbox1.Text = "OS = " & combobox1.SelectedItem & " " & 
combobox2.SelectedItem & " " & combobox3.SelectedItem 

如果我誤解了問題,你要避免換行那裏是沒有價值的,你會做到以下幾點:

Dim strResult As String = "OS = " & Environment.NewLine 

    ComboBox1.SelectedIndex = 1 

    If ComboBox1.SelectedItem IsNot Nothing Then 
     strResult += ComboBox1.SelectedItem.ToString() & Environment.NewLine 
    End If 

    If ComboBox2.SelectedItem IsNot Nothing Then 
     strResult += ComboBox1.SelectedItem.ToString() & Environment.NewLine 
    End If 

    If ComboBox3.SelectedItem IsNot Nothing Then 
     strResult += ComboBox1.SelectedItem.ToString() & Environment.NewLine 
    End If 

    TextBox1.Text = strResult 
+0

好的是我希望每個選定的項目都有它自己的新行。 –

+0

使用'&'替代'+'運算符來連接字符串:) :) – Fabio

+0

@Fabio LOL,「照我說的做,不像我做的!」 – N0Alias

0

我會用Linq個人。您不必擔心很多If語句,並檢查是否選擇了某項內容,並且還要連接一個字符串,或者如果您計劃添加或刪除CheckBox's;它會抓住所有的人。如果你打算不包括一些,那麼你需要修改查詢以適應。這也經過了嘗試和測試。

Dim q As List(Of String) = (From s As ComboBox In Me.Controls.OfType(Of ComboBox).Reverse() Where s.SelectedItem IsNot Nothing Select CStr(s.SelectedItem) & Environment.NewLine).ToList 
    MsgBox("OS = " & String.Join("", q.ToArray)) 'Just for testing! 
+0

如果表單包含未包含在此問題中的其他組合框,該怎麼辦? – Fabio

+0

它根本沒有關係。我說,如果他不想包含任何其他人,他需要進行相應的修改...... – Codexer

+0

因此,如果更多的'if'語句,但只試圖把所有內部長長的不可讀的LINQ查詢? – Fabio

相關問題