如何在vb.net中打印图片框中的txt
我正在使用更新的vb.net 8.0,而picturebox.print命令不起作用如何在vb.net中打印图片框中的txt,vb.net,picturebox,Vb.net,Picturebox,我正在使用更新的vb.net 8.0,而picturebox.print命令不起作用 Public Class Form11 Private Sub BttFor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BttFor.Click Dim a As Double For a = 10 To 50 Step (2) PbEven.print(a) Nex
Public Class Form11
Private Sub BttFor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BttFor.Click
Dim a As Double
For a = 10 To 50 Step (2)
PbEven.print(a)
Next a
End Sub
下面是旧的
.Print()
命令的基本功能
*比这更重要,但今天早上我没有那么积极
Public Class Form1
Private lines As New List(Of String)
Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Button1.Enabled = False
For a As Integer = 10 To 50 Step 2
Print(a)
Await Task.Delay(500)
Next
Button1.Enabled = True
End Sub
Private Sub Print(ByVal output As String)
lines.Add(output)
PictureBox1.Invalidate()
End Sub
Private Sub PictureBox1_Paint(sender As Object, e As PaintEventArgs) Handles PictureBox1.Paint
Dim rowHeight = PictureBox1.Font.Size + 5
For y As Integer = 0 To (lines.Count - 1)
e.Graphics.DrawString(lines(y), Me.Font, Brushes.Black, New Point(10, (y * rowHeight) + 10))
Next
End Sub
End Class
行动守则:
更新的vb.net 8.0是什么?如果这是一个WinForms应用程序,并且
pbeen
是一个PictureBox,那么该控件没有print()
方法。你必须订阅它的Paint
事件,并使用Graphics.DrawString()
来绘制a.ToString()
(如果你想这样做的话)@Jimi OP可能使用了经典的VB(VB6或更早版本),你可以在PictureBox控件上调用Print()另见:@Ahmed Abdelhameed Sure。这是一个新的东西,适用于15岁的东西,听起来很奇怪:)我不知道这个方法做了什么OP还可以将文本写入标签(使用其自动调整大小和文本对齐功能),然后使用[Label].DrawToBitmap()
创建图像。不确定OP为什么要在图片盒上绘制文本。也许以后再保存图像?更好地描述预期的结果不会有什么坏处。@Ahmed Abdelhameed我明白,这句话中有一整段是不存在的。我的意思是,这种习惯,即使用非持久性绘图,似乎在时间上是持久的(根据您看到代码错位的频率CreateGraphics()
)。因此,如果实际的方法(这个Print()
guy)不再存在,它看起来像是在.Net代码中伪装回来的事件。只是在这里吹毛求疵。。。实际上,Print()
所做的类似于在PictureBox的图形上调用DrawString()
(而不是PaintEventArgs.Graphics
)。见上文和吉米的回复。但当然,你在这里做的方式更好;“没有人想得到那种确切的行为。”当然是艾哈迈达布德哈米德。旧的.Print
确实是暂时的。如果从.CreateGraphics()
获得图形,请不要忘记.Dispose()
。