十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
也不是不可以实现,只不过复杂一点而已,具体看下面代码。不过在需要换行等情况下的文本显示,还是建议用RichTextBox开启只读属性比较省心、比较合适。
为黑山等地区用户提供了全套网页设计制作服务,及黑山网站建设行业解决方案。主营业务为成都网站建设、成都网站设计、黑山网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
Private Sub AutoNextRow()
'获取ListBox行集合文本
Dim length As Integer = (ListBox1.Items.Count - 1)
Dim items(length) As String '行文本数组
For i As Integer = 0 To length
items(i) = ListBox1.Items(i).ToString
Next
'处理ListBox换行
ListBox1.Items.Clear() '清空行内容
Using g As Graphics = Graphics.FromHwnd(ListBox1.Handle)
Dim result As New List(Of Object)
Dim w As Single = ListBox1.ClientSize.Width
Dim sf As SizeF, str As StringBuilder
For Each s As String In items
str = New StringBuilder
For i As Integer = 0 To (s.Length - 1)
sf = g.MeasureString(str.ToString s(i), ListBox1.Font)
If sf.Width w Then
result.Add(str.ToString)
str = New StringBuilder
End If
str.Append(s(i))
If i = s.Length - 1 Then result.Add(str.ToString)
Next
Next
ListBox1.Items.AddRange(result.ToArray) '填充行内容
End Using
End Sub
如果要自动换行,设置label的宽度固定即可。如果手动换行,可以这样:Label1.Caption = "这是标签" vbCrlf "内容换行"
报表打印应该也能实现,但是我觉得你这个用文本打印更简单,将数据输出到txt文件,结果用RichTextBox显示,但是需要简单的排版,调用打印机打印RichTextBox即可的
排版用tab()、space()、vbcrlf或PrintLine(1)换行,代码类似如下样式
PrintLine(1, TAB(60), "准考证" )
PrintLine(1)
PrintLine(1, "姓名:" xingming Space(3) "准考证号:" cel(1) Space(3) cel(2) Space(3) cel(3))
但是TAB()排版比较规整
打印代码类似如下:
PrintDialog1.Document = PrintDocument1
PrintDocument1.DocumentName = "准考证"
PrintDialog1.AllowSomePages = False
PrintDialog1.ShowHelp = False
PrintDialog1.ShowNetwork = False
PrintDialog1.AllowSelection = False
PrintDialog1.AllowPrintToFile = False
MySReader = New StringReader(RichTextBox1.Text)
stringToPrint = MySReader.ReadToEnd()
PageSetupDialog1.Document = PrintDocument1
PageSetupDialog1.PageSettings.Margins.Bottom = 50
PageSetupDialog1.PageSettings.Margins.Top = 50
PageSetupDialog1.PageSettings.Margins.Left = 50
PageSetupDialog1.PageSettings.Margins.Right = 50
If PageSetupDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
PrintDocument1.DefaultPageSettings = PageSetupDialog1.PageSettings '页面设置
If PrintDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
If PrintDialog1.PrinterSettings.IsValid = True Then
PrintDocument1.Print()
MsgBox("打印完成!" vbCrLf "Print completed!", , "Print hint(打印提示)")
Else
MsgBox("打印失败!打印机不可用。" vbCrLf "Print failed! The printer is not valid.", , "Print hint(打印提示)")
End If
Else
Exit Sub
End If
End If
错了,是vbCrLf Chr(13) + Chr(10)
共两个字符。
#10是换行符
#13是回车符
有了回车符,代表了一行的结束,也方便于读取文本。
不要只打一个,vbCrLf简单方便,也是一个良好的习惯。