Coordinate System for Visual Basic 6.0 Users
The coordinates for forms and controls are expressed differently in Visual Basic 2008 than in Visual Basic 6.0; methods for sizing and moving forms differ as well.
Conceptual Differences
In Visual Basic 6.0, coordinates for forms and controls are expressed in twips. In Visual Basic 2008, coordinates are expressed in pixels.
Height and Width Properties
In Visual Basic 6.0, the Height and Width properties are used to change the size of a form or control. Visual Basic 2008 provides a Size property that also allows you to change both height and width in a single step.
Move Method
Visual Basic 6.0 uses the Move method to change the location of a form or control at run time. In Visual Basic 2008, Move is replaced by the SetBounds method and coordinates are expressed in pixels.
ScaleMode property
Visual Basic 6.0 also provides a ScaleMode property you can use to define a different coordinate system. Visual Basic 2008 only supports a single coordinate system, pixels. ScaleMode and its related properties and methods (Scale, ScaleHeight, ScaleLeft, ScaleTop, ScaleWidth, ScaleX, ScaleY) are not supported in Visual Basic 2008. For more information, see ScaleMode is not supported.
Code Changes for Coordinates
The following code illustrates the differences in coding techniques between Visual Basic 6.0 and Visual Basic 2008.
Resizing a Form
The following example shows how to change the size of a form at run time.
' Visual Basic 6.0
' Measurements are in twips.
Me.Width = 8000
Me.Height = 6000
' Visual Basic' Measurements are in pixels.Me.Size = New System.Drawing.Size(640, 480)
Moving a Control
The following example shows how to move a control at run time.
' Visual Basic 6.0
' Move and retain original size.
CommandButton2.Move 2000, 1000
' Move and resize to 1200 by 800 twips.
CommandButton1.Move 0, 0, 1200, 800
' Visual Basic' Move and retain original size.
Button2.SetBounds(20, 10, 0, 0, BoundsSpecified.X Or BoundsSpecified.Y)
' Move and resize to 120 by 80 pixels.
Button1.SetBounds(0, 0, 120, 80)
Upgrade Notes
When a Visual Basic 6.0 application is upgraded to Visual Basic 2008, the Height and Width properties of forms and controls are automatically converted to pixels.
If the original application used the ScaleMode property, the upgrade tool assumes that the design-time setting for the ScaleMode property was twips; if this is not the case, the conversion will be incorrect and must be fixed. For more information, see ScaleMode is not supported.
See Also
Concepts
Form Object for Visual Basic 6.0 Users
Other Resources
Windows Forms Controls for Visual Basic 6.0 Users
Control Property, Method, and Event Changes for Visual Basic 6.0 Users