在 Visual Basic 2010 中哪些代码具有与“Picture1.Cls”(VB 6) 相同的功能?

问题描述 投票:0回答:1

是否有任何代码或我可以在 Visual Basic 2010 中执行的操作与 Visual Basic 6 中的

picture1.Cls
具有相同的功能?

我想清除条形码应用程序项目中的图片框,因此每次我在文本框中更改(删除/添加字符串)时,它总是会转换文本框中的实际字符串。因为现在每次我更改文本时都不想更改已转换的最后一个图像。

这是我的代码:

Private Sub make39()
.
.
.
.
.
.

'PictureBox1.Invalidate()
        'PictureBox1.Refresh()
        If TextBox1.Text = "" Then Exit Sub
        pos = 5
        Bardata = UCase(TextBox1.Text)

 temp = BC(43) & "0" & temp & BC(43)

        'Generate Barcode
        For x = 1 To Len(temp)
            If x Mod 2 = 0 Then
                'SPACE
                pos = pos + 1 + (2 * Val(Mid$(temp, x, 1))) + 1
            Else
                'BAR
                For y = 1 To 1 + (2 * Val(Mid$(temp, x, 1)))
                    'PictureBox1 (pos, 1) - (pos, 58 - 1 * 8)
                    'Dim pen As New Pen(Color.Black)
                    'ga.DrawLine (pos, 1)-(pos, 58 - 1 * 8)
                    ga = PictureBox1.CreateGraphics
                    ga.DrawLine(Pens.Black, pos, 1, pos, 58 - 1 * 8)
                    'ga.DrawLine(Pens.Black, New Point(pos, 1), New Point(pos, 58 - 1 * 8))
                    pos = pos + 1
                Next
            End If

        Next
        ga.DrawString(TextBox1.Text, New System.Drawing.Font("Microsoft Sans Serif", 10), Brushes.Red, New System.Drawing.Point(90 + Len(Bardata) * (5 + 1 * 2), 55))
        temp = 0
    End Sub

正如您在代码中看到的,我一直在尝试使用

PictureBox1.Refresh
PictureBox1.Invalidate
来尝试清除我的图片框。另外,在最后一个代码中,我将“temp”定义为 0。我只是希望每次更改文本框时,它总是会转换新的条形码。

感谢您的好意,并为我的英语不好而抱歉

vb.net
1个回答
0
投票

正如我在评论中所说,处理要绘制的控件的

Paint
事件并使用提供的
Graphics
对象。每当您想要执行该绘图代码时,请在控件上调用
Invalidate
以引发
Paint
事件。例如

Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
    PictureBox1.Invalidate()
End Sub

Private Sub PictureBox1_Paint(sender As Object, e As PaintEventArgs) Handles PictureBox1.Paint
    e.Graphics.DrawString(TextBox1.Text, Font, Brushes.Black, PointF.Empty)
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.