如何在vb.net中打印图片框中的txt

如何在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

我正在使用更新的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)
    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()