考虑到我的工程工作非常酷的实用工具,但唉,我认为有问题的问题很简单。 我的目标是轻松地为不均匀的字段应用不等间距...我已经研究了填充,因为这听起来像解决方案,但我最终获得了与以下相同的输出。
RichTextBox2.Text = "HOSTNAME IP LOCAL REMOTE PLATFORM "
& vbNewLine
Dim largest = 0
For Each host In hostnames
If host.ToString.Length > largest Then
largest = host.ToString.Length
End If
Next
For count As Integer = 0 To hostnames.Count - 1
Dim space = largest - hostnames(count).ToString.Length
RichTextBox2.AppendText(hostnames(count).ToString)
For x = 0 To space -1
RichTextBox2.AppendText(" ")
Next
Next
这里是我获取的一个例子
SW_1123_TEST 1123.45.6.78
SW_2 123.4
SW_3+4_T 23.123.41.21
S_1 123.4.5.67
答案 0 :(得分:0)
正如通过评论所说,你不能依赖这种方法(添加空格)而不考虑给定字体的大小。此外,RichTextBox
的{{1}}属性对这些情况非常有帮助。示例代码:
SelectionTabs
我依靠不同的列表(每个"列#34;)清楚地显示这些想法。首先,您必须依靠给定字体(通过Dim inputs1 As New List(Of String)
Dim inputs2 As New List(Of String)
Dim inputs3 As New List(Of String)
inputs1.Add("1100")
inputs1.Add("120")
inputs1.Add("130000")
inputs2.Add("210")
inputs2.Add("22000")
inputs2.Add("2300")
inputs3.Add("31000")
inputs3.Add("3200")
inputs3.Add("3300")
Dim largest(3) As Integer
Dim curInputs As List(Of String) = inputs1
Dim count As Integer = -1
Do
count = count + 1
If (count = 1) Then curInputs = inputs2
If (count = 2) Then curInputs = inputs3
For Each item In curInputs
Dim curLength As Integer = TextRenderer.MeasureText(item, RichTextBox2.Font).Width
If curLength > largest(count) Then
largest(count) = curLength
End If
Next
Loop While (count < 2)
RichTextBox2.SelectionTabs = New Integer() {largest(0), largest(1), largest(2)}
count = -1
Do
count = count + 1
RichTextBox2.Text = RichTextBox2.Text & inputs1(count) & vbTab & inputs2(count) & vbTab & inputs3(count) & Environment.NewLine
Loop While (count < 2)
)的文本长度来确定每列的最长长度。之后,您必须重新标注TextRenderer.MeasureText
以考虑所需的列数,并根据上述最大值设置长度。最后,通过指定&#34;列与#34;之间的分隔来写入值。应放置(SelectionTabs
)。
注意:默认的RichTextBox配置似乎自动考虑了标签而没有任何指示。只需编写最后一个循环(仅包括写入部分),默认的RichTextBox(VS 2010)就会显示预期的行为(3&#34;列&#34;)。
答案 1 :(得分:0)
奖励!你的示例代码工作。谢谢!
SWITCH NAME IP ADDRESS LOCAL INTERFACE REMOTE INTERFACE
SW1@@@@@@@@@@@@@@@@@@ 12.34.927.42 GigabitEthernet$/$$ GigabitEthernet$?$
SW2@@@@@@@@@@ 12.3.123.42 GigabitEthernet$/$ GigabitEthernet$/$
SW3@@@@@@@@@@@@@@ 12.89.3.29 GigabitEthernet$/$$ GigabitEthernet$/$
SW4@@@@@@@ 12.89.3.29 GigabitEthernet$$/$ GigabitEthernet$/$