我有一个4位数的扩展名列表,我从服务器中取出
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(将列表导入ListBox)我有
Dim ext As String
ext = TextBox1.Text
ListBox1.Items.Add(ext)
但是我将列表放在1个项目中并且没有空格(如果它来自TextBox或Label,它不会生成)
我尝试添加
If TextBox1.Text.Length > 4 Then TextBox1.Text = TextBox1.Text.Insert(4, Environment.NewLine)
但是它只为前4位数(1个扩展名)添加了一个新行,其余为1行
有什么想法吗?
由于
答案 0 :(得分:1)
星号返回的字符串数据可能用换行符分隔(ASCII值为10)。拆分Chr(10)
上的返回字符串,并使用.AddRange(ext)
函数将所有项添加到列表框中:
ListBox1.Items.AddRange(ext.Split(New Char() {Chr(10)}, StringSplitOptions.RemoveEmptyEntries))
答案 1 :(得分:0)
答案会有所不同,具体取决于您使用的是WinForms,WPF等 - 我假设是WinForms。
检查您的文本框是否设置为Multiline = true
- 如果没有,则可能会解决您的第一个问题。但更重要的是,@ LarsTech正走在正确的轨道上。将cmd.Result
分配给新的字符串变量(而不是直接分配给TextBox1.Text
)然后将其拆分为带有String.Split()
的字符串数组,然后遍历该数组,将每个字符串分别添加到ListBox中。无论您如何处理换行符,都无法使用单个Items.Add语句将多个项目放入列表框中。
如果这就是你的循环所做的全部,那么你可以使用ListBox.AddRange()
一次添加整个数组。