更新:2007 年 11 月
Visual Basic 6.0 中的 PictureBox 控件在 Visual Basic 2008 中由 Windows 窗体 PictureBox 控件所取代。某些属性、方法、事件和常数的名称是不同的,在某些情况下,行为也有所不同。
概念差异
PictureBox 作为容器
Visual Basic 6.0 PictureBox 控件是一个容器控件,除了显示图片外,还可用于分组和显示其他控件。
Visual Basic 2008PictureBox 控件不是容器控件;只能用于显示图片。如果需要容器控件,则可使用新的 Panel 控件替代 PictureBox 控件。
AutoSize 属性
在 Visual Basic 6.0 中,AutoSize 属性确定 PictureBox 控件是保留其设计时大小 (AutoSize = False) 还是动态调整大小以适合图片的尺寸 (AutoSize = True)。
在 Visual Basic 2008 中,AutoSize 属性替换为 SizeMode 属性;除了 Normal 和 AutoSize 模式,还可居中对齐、拉伸或缩放图片。
图形属性和方法
在 Visual Basic 6.0 中,各种图形属性和方法都可用于在 PictureBox 控件上绘制线条、形状和文本。
在 Visual Basic 2008 中,控件不再具有图形属性或方法;但仍可使用 T:System.Drawing.Graphics 对象在 PictureBox 控件上进行绘制。有关更多信息,请参见 图形(针对 Visual Basic 6.0 用户)。
其他差异
此外,还有许多适用于所有控件的概念差异,包括数据绑定、字体处理、拖放功能、帮助支持等方面的差异。有关更多信息,请参见适用于 Visual Basic 6.0 用户的 Windows 窗体概念。
PictureBox 控件的代码更改
下面的示例演示 Visual Basic 6.0 与 Visual Basic 2008 在编码方法方面的差异。
显示图片的代码更改
下面的代码演示如何在运行时在 PictureBox 控件中显示图片。
' Visual Basic 6.0
Picture1.Picture = LoadPicture(App.Path & "\somepicture.jpg")
' Visual Basic
PictureBox1.Image = System.Drawing.Bitmap.FromFile( _
  My.Application.Info.DirectoryPath & "\somepicture.jpg")
清除 PictureBox 控件的代码更改
下面的代码演示如何在运行时清除 PictureBox 控件,从而不显示图像。
' Visual Basic 6.0
Picture1.Picture = LoadPicture("")
' Visual Basic
If Not (PictureBox1.Image Is Nothing) Then
    PictureBox1.Image.Dispose()
    PictureBox1.Image = Nothing
End If
在 PictureBox 控件进行绘制的代码更改
下面的代码演示如何在运行时在 PictureBox 控件中心绘制一个直径为 40 像素的红色圆。
' Visual Basic 6.0
Private Sub Picture1_Paint
    Dim x As Integer
    Dim y As Integer
    Picture1.ScaleMode = vbPixels
    x = Picture1.ScaleWidth / 2
    y = Picture1.ScaleHeight / 2
    Picture1.Circle (x, y), 20, vbRed
End Sub
' Visual Basic
Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e _
As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
    Dim radius As Integer = 20
    Dim diameter As Integer = radius * 2
    Dim x As Integer = (PictureBox1.Width / 2) - radius
    Dim y As Integer = (PictureBox1.Height / 2) - radius
    e.Graphics.DrawEllipse(Pens.Red, x, y, diameter, diameter)
End Sub
PictureBox 控件属性、方法和事件的等效项
下表列出了 Visual Basic 6.0 属性、方法和事件,以及它们的 Visual Basic 2008 等效项。具有相同的名称和行为的属性、方法和事件未予列出。如果适用,常量在属性或方法的下面缩进。除非另有说明,否则所有的 Visual Basic 2008 枚举都映射到 System.Windows.Forms 命名空间。
此表提供相关主题的链接,这些主题对行为之间的差异进行说明。如果 Visual Basic 2008 中没有直接等效项,则提供指向介绍其他替代项的主题的链接。
属性
| Visual Basic 6.0 | Visual Basic 2008 等效项 | ||
|---|---|---|---|
| Align | |||
| Appearance | 新的实现。有关更多信息,请参见 Appearance 和 BorderStyle 属性(针对 Visual Basic 6.0 用户)。 | ||
| AutoRedraw | 新的实现。有关更多信息,请参见 图形(针对 Visual Basic 6.0 用户)。 | ||
| AutoSize | |||
| BackColor | 
 | ||
| BorderStyle | 
 | ||
| ClipControls | 新的实现。有关更多信息,请参见 图形(针对 Visual Basic 6.0 用户)。 | ||
| Container | |||
| CurrentX CurrentY | 新的实现。有关更多信息,请参见 图形(针对 Visual Basic 6.0 用户)。 | ||
| DataChanged DataField DataFormat DataMember DataSource | 新的实现。有关更多信息,请参见适用于 Visual Basic 6.0 用户的数据访问。 | ||
| DragIcon DragMode | 新的实现。有关更多信息,请参见拖放(针对 Visual Basic 6.0 用户)。 | ||
| DrawMode DrawStyle DrawWidth FillColor FillStyle | 新的实现。有关更多信息,请参见 图形(针对 Visual Basic 6.0 用户)。 | ||
| Font FontBold FontItalic FontName FontSize FontStrikethrough FontUnderline | 
 | ||
| ForeColor | 
 | ||
| HasDC HDC | 新的实现。有关更多信息,请参见 图形(针对 Visual Basic 6.0 用户)。 | ||
| Height | 
 | ||
| HelpContextID | 新的实现。有关更多信息,请参见帮助支持(针对 Visual Basic 6.0 用户)。 | ||
| HWnd | |||
| Image | 新的实现。有关更多信息,请参见 图形(针对 Visual Basic 6.0 用户)。 
 | ||
| Index | 新的实现。有关更多信息,请参见控件数组(针对 Visual Basic 6.0 用户)。 | ||
| Left | 
 | ||
| LinkItem LinkMode LinkTimeOut LinkTopic | 无等效项。有关更多信息,请参见动态数据交换(针对 Visual Basic 6.0 用户)。 | ||
| MouseIcon | 新的实现。有关更多信息,请参见无法设置自定义 MousePointer。 | ||
| MousePointer | 有关常数的列表,请参见 MousePointer(针对 Visual Basic 6.0 用户)。 | ||
| OLEDragMode OLEDropMode | 新的实现。有关更多信息,请参见拖放(针对 Visual Basic 6.0 用户)。 | ||
| Parent | |||
| Picture | |||
| ScaleHeight ScaleLeft ScaleMode ScaleTop ScaleWidth | 新的实现。有关更多信息,请参见坐标系统(针对 Visual Basic 6.0 用户)。 | ||
| ToolTipText | ToolTip 组件 有关更多信息,请参见工具提示支持(针对 Visual Basic 6.0 用户)。 | ||
| Top | 
 | ||
| WhatsThisHelpID | 新的实现。有关更多信息,请参见帮助支持(针对 Visual Basic 6.0 用户)。 | ||
| Width | 
 | 
方法
| Visual Basic 6.0 | Visual Basic 2008 等效项 | ||
|---|---|---|---|
| Circle Cls | 新的实现。有关更多信息,请参见 图形(针对 Visual Basic 6.0 用户)。 | ||
| Drag | 新的实现。有关更多信息,请参见拖放(针对 Visual Basic 6.0 用户)。 | ||
| Line | 新的实现。有关更多信息,请参见 图形(针对 Visual Basic 6.0 用户)。 | ||
| LinkExecute LinkPoke LinkRequest LinkSend | 无等效项。有关更多信息,请参见动态数据交换(针对 Visual Basic 6.0 用户)。 | ||
| Move | 
 | ||
| OLEDrag | 新的实现。有关更多信息,请参见拖放(针对 Visual Basic 6.0 用户)。 | ||
| PaintPicture Point PSet | 新的实现。有关更多信息,请参见 图形(针对 Visual Basic 6.0 用户)。 | ||
| Scale ScaleX ScaleY | 新的实现。有关更多信息,请参见坐标系统(针对 Visual Basic 6.0 用户)。 | ||
| SetFocus | |||
| ShowWhatsThis | 新的实现。有关更多信息,请参见帮助支持(针对 Visual Basic 6.0 用户)。 | ||
| TextHeight TextWidth | 新的实现。有关更多信息,请参见 图形(针对 Visual Basic 6.0 用户)。 | ||
| ZOrder | BringToFront 或 SendToBack 方法 | 
事件
| Visual Basic 6.0 | Visual Basic 2008 等效项 | 
|---|---|
| Change | 新的实现。个别事件(BackgroundImageChanged、SizeChanged 等)在某些属性更改时引发。 | 
| DblClick | |
| DragDrop DragOver | 新的实现。有关更多信息,请参见拖放(针对 Visual Basic 6.0 用户)。 | 
| GotFocus | |
| KeyDown KeyPress KeyUp | 新的实现。Visual Basic 2008PictureBox 控件不是容器控件,不接收击键。 | 
| LinkClose LinkError LinkNotify LinkOpen | 无等效项。有关更多信息,请参见动态数据交换(针对 Visual Basic 6.0 用户)。 | 
| LostFocus | |
| OLECompleteDrag OLEDragDrop OLEDragOver OLEGiveFeedback OLESetData OLEStartDrag | 新的实现。有关更多信息,请参见拖放(针对 Visual Basic 6.0 用户)。 | 
| Validate | 
升级说明
在升级时,包含控件的 PictureBox 控件升级为 Panel 控件。对于升级到 Panel 控件的 Visual Basic 6.0 PictureBox 控件,分配给 Picture 属性的图像映射到 Panel 控件的 BackgroundPicture 属性。
.gif) 说明:
说明: