2017-01-11 66 views
0

我有說我拉出我的服務器的4個擴展列表VB.NET文本框列表框中新行

cmd = sshClient.RunCommand("asterisk -x 'sip show peers' | grep -w OK | awk '{print $1}' | awk -F'/' '{print $1}'") 
TextBox1.Text = cmd.Result 

TextBox1中確實與擴展名列表填滿,但它畢竟是在1線

(順便說一句,如果我從TextBox1的到Label1的改變它,然後我讓他們在不同的線路)

然後,BUTTON2(獲取列表轉換成一個列表框),我有

Dim ext As String 
ext = TextBox1.Text 
ListBox1.Items.Add(ext) 

但我得到了1項列表,並沒有空格(不母校如果是從文本框或標籤)

我嘗試添加

If TextBox1.Text.Length > 4 Then TextBox1.Text = TextBox1.Text.Insert(4, Environment.NewLine) 

但它增加了一個新的行前4位數字(1擴展名),其餘位於1行

任何想法?

感謝

+0

你將不得不拆就分開您的擴展的字符。 – LarsTech

回答

1

由星號返回的字符串數據可能由換行符分隔(ASCII值爲10)。拆分返回的字符串上Chr(10)和使用.AddRange(ext)功能,所有的項目添加到列表框中:

ListBox1.Items.AddRange(ext.Split(New Char() {Chr(10)}, StringSplitOptions.RemoveEmptyEntries)) 
+0

這工作,謝謝。 但我現在有一個額外的空白項目... – user7406533

+0

回答更新刪除空條目。 –

0

答案將取決於您是否正在使用的WinForms,WPF,等了一下 - 我假設的WinForms。

檢查您的文本框設置爲Multiline = true - 如果沒有,可以解決您的第一個問題。但更根本的是,@LarsTech正處於正確的軌道上。將cmd.Result分配給一個新的字符串變量(而不是直接輸入TextBox1.Text),然後將其分割成一個字符串數組,然後循環遍歷數組,將每個數組分別添加到您的ListBox中。無論您如何處理換行符,您都無法使用單個Items.Add語句將多個項目放入Listbox。

如果這就是你的循環所做的一切,那麼你可以使用ListBox.AddRange()來一次添加整個數組。