Visual Basic 6.0 使用者可用的 PictureBox 控制項
更新:2007 年 11 月
Visual Basic 6.0 的 PictureBox 控制項在 Visual Basic 2008 中會以 Windows Form PictureBox 控制項取代。有些屬性 (Property)、方法、事件及常數的名稱會改變,而且在某些情況下,行為方面也會有差異。
概念上的差異
PictureBox 做為容器
Visual Basic 6.0 PictureBox 控制項是容器 (Container) 控制項。除了顯示圖片之外,這個控制項可用於分組和顯示其他控制項。
Visual Basic 2008 的 PictureBox 控制項不是容器控制項,只可用於顯示圖片。您可以使用新的 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 使用者可用的圖形。
其他差異
此外,還有許多概念不同處,適用於所有控制項,包括資料繫結 (Data Binding)、字型處理、拖放功能、說明支援等方面的差別。如需詳細資訊,請參閱 Visual Basic 6.0 使用者的 Windows Form 概念。
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 列舉型別 (Enumeration) 都會對應到 System.Windows.Forms 命名空間 (Namespace)。
此表提供說明行為差異的主題連結。若 Visual Basic 2008 中沒有直接的對等用法,則提供連結至替代的主題。
屬性
Visual Basic 6.0 |
Visual Basic 2008 對等用法 |
||
---|---|---|---|
Align |
|||
Appearance |
新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的 Appearance 和 BorderStyle 屬性。 |
||
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 |
如需常數的清單,請參閱 Visual Basic 6.0 使用者可用的 MousePointer。 |
||
OLEDragMode OLEDropMode |
新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的拖放動作。 |
||
Parent |
|||
Picture |
|||
ScaleHeight ScaleLeft ScaleMode ScaleTop ScaleWidth |
新實作。如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的座標系統。 |
||
ToolTipText |
ToolTip 元件 如需詳細資訊,請參閱 Visual Basic 6.0 使用者可用的 ToolTip 支援。 |
||
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 2008 的 PictureBox 控制項不是容器控制項,而且不會接收按鍵。 |
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 屬性。