Skip to content

Form 类

Form 是一个顶级 Win32 窗口,承载单个 twinBASIC 用户界面的控件、菜单和绘图表面。在 IDE 中设计的每个窗体都成为派生自Form的自身类——其控件成为该类的成员,其事件处理程序成为其上的方法,文件名成为类名。窗体外的代码通常通过全局默认实例引用(MyForm.Show)隐式实例化它,或使用New MyForm显式实例化。默认属性为Controls,默认事件为Load

vb
' 在 Form1 的代码隐藏中:
Private Sub Form_Load()
    Caption = "Welcome"
    Me.MinWidth = 4000          ' 缇,≈ 2 英寸
    Me.MinHeight = 3000
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    If MsgBox("Quit?", vbYesNo) = vbNo Then Cancel = 1
End Sub

' 在启动模块中:
Sub Main()
    Form1.Show vbModal
End Sub

生命周期

窗体从创建到销毁经历六个不同事件:

事件时机
Initialize底层窗口存在之前。窗体的控件尚未创建。
Load窗口和所有控件创建之后,窗体首次显示之前。
Activate窗体成为应用程序中的活动窗口时。
Deactivate另一个窗体(或另一个应用程序的窗口)夺取激活时。
QueryUnload卸载之前。将Cancel设置为非零可保持窗体打开。
UnloadQueryUnload通过之后。将Cancel设置为非零可保持窗体打开。
Terminate窗口销毁且类实例释放之后。

关闭窗体经过QueryUnloadUnload两者,因此任一都可以否决。QueryUnloadUnloadMode参数(QueryUnloadConstants)报告用户是点击了关闭按钮、代码调用了Unload、Windows 正在关机、MDI 父窗体正在关闭等。

显示窗体

Show使窗体可见。它接受一个可选的FormShowConstants参数:vbModeless(默认——调用立即返回,用户可与其他窗体交互)或vbModal(调用阻塞直到窗体关闭,应用程序中的其他窗体变得不可响应)。MDI 子窗体不能以模态方式显示;尝试这样做会引发运行时错误 404。

vb
dlgOptions.Show vbModal, Me      ' 模态,由调用窗体拥有

HideClose反转效果:Hide仅清除VisibleClose运行完整的卸载序列(QueryUnload然后Unload然后Terminate)。经典的Unload <FormName>语句在语言层面等同于Close

StartUpPositionStartUpPositionConstants)在首次Show时读取以决定窗体放置位置;之后由用户(或代码通过MoveWindowState)控制位置。

窗口外观

BorderStyleFormBorderStyleConstants)在可调整大小、固定、对话框、工具和无边框框架之间选择。Caption是标题栏文本。ControlBoxMaxButtonMinButton切换系统菜单和调整大小按钮。Icon提供系统菜单、任务栏和 Alt-Tab 使用的小/大图标。WindowStateFormWindowStateConstants)在运行时读取或设置正常/最小化/最大化状态。

MinWidthMinHeightMaxWidthMaxHeight在交互式调整大小期间以缇为单位约束客户区Moveable决定用户是否可以通过标题栏拖动窗体;ShowInTaskbar决定窗体是否出现在任务栏和 Alt-Tab 列表中。

OpacityTransparencyKey启用 Windows 的分层窗口功能,实现半透明窗体和镂空形状。

绘图表面

Form 本身是一个图形表面——代码可以直接在其上绘制线条、形状和文本。坐标系由ScaleMode(默认vbTwips——经典 VB6 行为)和ScaleLeft / ScaleTop / ScaleWidth / ScaleHeight属性控制,它们共同描述窗体的逻辑绘图矩形。将ScaleMode设置为vbUser允许四个**Scale***属性定义任意矩形;Scale方法在单次调用中完成此操作。

绘图原语为ClsCircleLinePSetPaintPicturePrint语句(Form1.Print "Hello")——均使用ForeColorFillColorFillStyleDrawWidthDrawModeDrawStyle作为画笔和填充,并使用窗体的Font绘制文本。当前画笔位置由CurrentXCurrentY跟踪;TextWidthTextHeight以当前字体测量字符串。ScaleXScaleY在比例模式之间转换单个坐标。

AutoRedraw控制绘图输出是否在重绘时持久保留:当False(默认)时,Paint事件必须在每次失效时重绘;当True时,窗体保持一个在失效时存活的离屏缓冲区,Paint事件被抑制。设置Picture在绘图层后面放置位图;ImageStdPicture形式返回渲染的组合表面。

vb
Private Sub Form_Paint()
    Me.ScaleMode = vbPixels
    Me.ForeColor = vbBlue
    Me.DrawWidth = 3
    Me.Line (10, 10)-(120, 80), , B          ' 矩形
    Me.CurrentX = 16 : Me.CurrentY = 16
    Me.Print "Hello, twinBASIC"
End Sub

控件和验证

Controls是窗体上每个控件的集合,可按名称或零基位置索引。Form 也可直接枚举——For Each ctrl In Form1产生与For Each ctrl In Form1.Controls相同的项。CountControls.Count的简写。ActiveControl返回当前获得焦点的子控件,或当此窗体上没有控件获得焦点时返回Nothing

KeyPreview将击键路由到窗体的KeyDownKeyUpKeyPress事件,焦点控件看到它们之前——适用于应用程序级热键处理。ValidateControls从代码显式触发活动控件的Validate事件;如果验证处理程序设置Cancel,则引发运行时错误 380。

菜单和弹出菜单

在窗体设计时设计的菜单结构自动出现在窗体的标题栏中。PopUpMenu将其中一个菜单作为上下文菜单弹出显示在指定位置,当用户选择项目时触发菜单的Click事件。

vb
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = vbRightButton Then PopUpMenu mnuContext
End Sub

属性

ActiveControl

此窗体上当前获得输入焦点的控件,为Control对象,或当此窗体上没有控件获得焦点时为Nothing。只读。

AlwaysShowKeyboardCues

True时,窗体始终显示Caption和菜单项中访问键字符的下划线,而不是仅在用户按Alt后显示。Boolean,运行时只读。在设计时设置。

Appearance

决定操作系统如何绘制控件边框。AppearanceConstants的成员:vbAppearFlatvbAppear3d(默认)。

INFO

保留用于 VB6 兼容性;该属性在窗体上没有可观察效果。

AutoRedraw

在窗体上执行的绘图是否在失效时持久保留。Boolean,默认False

False时,绘图原语——ClsCircleLinePSetPaintPicturePrint——直接绘制到屏幕,窗体必须在Paint事件中在受影响区域失效时重绘它们。当True时,窗体保持一个离屏位图,绘图原语绘制到其中(并立即到屏幕),位图在失效时存活,Paint事件被抑制。读取Image返回此位图。

BackColor

窗体客户区的背景色,为OLE_COLOR。默认为系统 3D 面颜色。用作Cls的填充色和Picture后面的画布。

BorderStyle

窗口框架样式。FormBorderStyleConstants的成员:vbBSNonevbFixedSinglevbSizable(默认)、vbFixedDialogvbFixedToolWindowvbSizableToolWindowvbSizableNoTitleBar(twinBASIC 新增)或vbSizableToolWindowNoTitleBar(twinBASIC 新增)。运行时更改被接受,但仅在窗口发生另一次更改后生效——通常是重新赋值Caption

Caption

标题栏文本。String

语法:object.Caption [ = string ]

设置Caption会立即更新标题栏并重新同步标题栏样式标志(因此它可以恢复因前一个Caption为空而隐藏的标题栏)。

ClipControls

在绘制期间子控件是否从窗体的绘图区域中裁剪出去。Boolean,默认True。运行时只读——在设计时设置。

ControlBox

窗体标题栏是否显示系统菜单(以及关闭按钮)。Boolean,默认True。在运行时设置会重新同步标题栏样式标志。

Controls

此窗体承载的每个控件的集合,可按控件名称或零基位置索引。**默认属性。**只读——控件由运行时添加到集合中,而非用户代码。

vb
Dim ctrl As Control
For Each ctrl In Me.Controls
    ctrl.Enabled = False
Next

Count

Controls中的控件数量,为Long。只读。等效于Me.Controls.Count

ControlType

标识此控件为窗体的只读ControlTypeConstants值。始终为vbForm

CurrentX

水平画笔位置,以ScaleMode单位表示,由省略起始坐标的绘图原语使用(例如PrintLine的矩形形式)。Double

CurrentY

垂直画笔位置,以ScaleMode单位表示,由省略起始坐标的绘图原语使用。Double

DpiScaleFactorX

窗体当前所在显示器的水平 DPI 缩放因子,为Double。96 DPI 时为1.0,120 DPI 时为1.25,144 DPI 时为1.5,以此类推。只读。

DpiScaleFactorY

窗体当前所在显示器的垂直 DPI 缩放因子。当前始终等于DpiScaleFactorX。只读。

DrawMode

绘图原语在将画笔与目标组合时应用的光栅操作。DrawModeConstants的成员:vbCopyPen(默认)是正常不透明绘制;其他值产生 XOR、AND、NOT 和其他像素混合效果。

DrawStyle

绘图原语使用的画笔线型。DrawStyleConstants的成员:vbSolid(默认)、vbDashvbDotvbDashDotvbDashDotDotvbInvisiblevbInsideSolid

DrawWidth

绘图原语的画笔宽度,以像素为单位。Long,默认1。宽度大于 1 会强制DrawStyle回到vbSolid(Win32 GDI 限制)。

Enabled

决定窗体是否接受用户输入。禁用的窗体忽略键盘和鼠标输入并使其控件变暗。Boolean,默认True

FillColor

CircleLine矩形形式绘制的封闭形状的填充色。OLE_COLOR,默认0(黑色)。仅在FillStyle不为vbFSTransparent时使用。

FillStyle

封闭形状的填充图案。FillStyleConstants的成员:vbFSSolidvbFSTransparent(默认)、vbHorizontalLinevbVerticalLinevbUpwardDiagonalvbDownwardDiagonalvbCrossvbDiagonalCross

Font

本窗体上Print语句和其他文本绘制使用的StdFont。便利属性FontNameFontSizeFontBoldFontItalicFontStrikethruFontUnderline读取或写入此对象的相应成员。

FontTransparent

True(默认)时,在窗体上绘制的文本具有透明背景,底层绘图在文本后面可见。当False时,文本绘制在以BackColor填充的不透明矩形上。Boolean

ForeColor

CircleLinePSet使用的画笔颜色和Print绘制的文本颜色。OLE_COLOR

hDC

窗体的 Win32 设备上下文句柄,为LongPtr。只读。当底层窗口尚未创建时返回0。适用于传递给 GDI API 调用。

HasDC

窗体是否为其绘图表面保持专用设备上下文(CS_OWNDC)。Boolean,默认True。运行时只读——在设计时设置。

Height

窗体的外部高度,默认以缇为单位(或容器ScaleMode单位)。Double。设置它会调整窗口大小。运行时受MinHeightMaxHeight约束(非零时)。

HelpContextID

标识应用程序帮助文件中主题的Long,当用户在窗体获得焦点时按F1时检索。

hWnd

窗体的 Win32 窗口句柄,为LongPtr。只读。适用于传递给 API 函数。

Icon

标题栏、任务栏和 Alt-Tab 中显示的图标。vbPicTypeIcon类型的StdPicture。赋值非图标图片会将图标清除为默认 Windows 应用程序图标。

Image

StdPicture形式返回渲染的绘图表面。只读。当AutoRedrawTrue时最有用——返回的图片是持久的离屏缓冲区。

KeyPreview

True时,窗体的KeyDownKeyUpKeyPress事件在焦点控件接收相同击键之前触发。Boolean,默认False。适用于应用程序级热键;事件之后仍在焦点控件上触发。

Left

窗体外部矩形的水平位置,以缇为单位(或调用代码的ScaleMode单位),从屏幕左边缘测量——或对于 MDI 子窗体,从 MDI 父窗体客户区的左边缘测量。Double

LinkMode

INFO

保留用于 VB6 DDE 功能兼容性;twinBASIC 中当前未实现。

LinkTopic

INFO

保留用于 VB6 DDE 功能兼容性;twinBASIC 中当前未实现。

MaxButton

标题栏是否显示最大化按钮。Boolean,默认True,运行时只读。在设计时设置。

MaxHeight

窗体客户区的最大高度,以缇为单位。Double,默认0(无限制)。在交互式调整大小时生效。

MaxWidth

窗体客户区的最大宽度,以缇为单位。Double,默认0(无限制)。在交互式调整大小时生效。

MDIChild

True时,窗体作为子窗体承载在MDIForm中。Boolean,只读——在设计时设置。MDI 子窗体不能以模态方式显示。

MinButton

标题栏是否显示最小化按钮。Boolean,默认True,运行时只读。在设计时设置。

MinHeight

窗体客户区的最小高度,以缇为单位。Double,默认0(无限制)。在交互式调整大小时生效。

MinWidth

窗体客户区的最小宽度,以缇为单位。Double,默认0(无限制)。在交互式调整大小时生效。

MouseIcon

MousePointervbCustom且指针位于窗体上方(且不在有自身设置的子控件上)时用作鼠标光标的StdPicture

MousePointer

当指针位于窗体上方(且不在有自身设置的子控件上)时显示的鼠标光标。MousePointerConstants的成员。

Moveable

用户是否可以通过标题栏拖动窗体。Boolean,默认True

Name

窗体的唯一设计时名称。运行时只读。也是生成的窗体类的类名。

NegotiateMenus

INFO

保留用于 VB6 ActiveX 文档菜单协商功能兼容性;twinBASIC 中当前未实现。

OLEDropMode

窗体如何响应 OLE 放置。OLEDropConstants的受限成员:vbOLEDropNonevbOLEDropManual。Form 不支持自动放置模式。

Opacity

窗体的不透明度百分比(0--100,默认 100)。超出范围的值在Initialize时被钳制。低于 100 的值会使窗体成为分层窗口。

Palette

INFO

保留用于 VB6 256 色调色板功能兼容性;twinBASIC 中当前未实现。

PaletteMode

INFO

保留用于 VB6 256 色调色板功能兼容性;twinBASIC 中当前未实现。

Picture

作为窗体背景绘制的StdPicture。在任何绘图原语或子控件之前绘制。赋值Nothing移除背景。

PictureDpiScaling

True时,Picture在绘制前按当前 DPI 因子缩放。Boolean,默认False

RightToLeft

INFO

保留用于 VB6 兼容性;twinBASIC 中当前未实现。

ScaleHeight

逻辑绘图矩形的高度,以ScaleMode单位表示。Double。设置它(或ScaleWidthScaleLeftScaleTop)会隐式将ScaleMode切换为vbUser

ScaleLeft

窗体客户区左边缘的逻辑水平坐标,以ScaleMode单位表示。Double。默认0

ScaleMode

CurrentXCurrentY、绘图原语、TextWidthTextHeight使用的度量单位。ScaleModeConstants的成员:vbTwips(默认)、vbPointsvbPixelsvbCharactersvbInchesvbMillimetersvbCentimetersvbUser(四个**Scale***属性定义矩形)。

ScaleTop

窗体客户区顶边缘的逻辑垂直坐标,以ScaleMode单位表示。Double。默认0

ScaleWidth

逻辑绘图矩形的宽度,以ScaleMode单位表示。Double。设置它会隐式将ScaleMode切换为vbUser

ShowInTaskbar

窗体是否出现在 Windows 任务栏和 Alt-Tab 列表中。Boolean,默认True。运行时只读——在设计时设置。

StartUpPosition

窗体首次显示时如何确定初始位置。StartUpPositionConstants的成员:vbStartUpManualvbStartUpOwnervbStartUpScreenvbStartUpWindowsDefault(默认)。运行时只读——在设计时设置。

TabFocusAutoSelect

True时,此窗体上自身TabFocusAutoSelect也为TrueTextBox在通过TAB键进入焦点时自动选中其内容。Boolean,默认False

Tag

应用程序可用于将自定义数据与窗体关联的自由格式String。框架不使用此属性。

Top

窗体外部矩形的垂直位置,以缇为单位(或调用代码的ScaleMode单位),从屏幕顶边缘测量——或对于 MDI 子窗体,从 MDI 父窗体客户区的顶边缘测量。Double

TopMost

窗体是否位于置顶层 z 顺序层。Boolean,运行时只读。在设计时设置。

TransparencyKey

一个OLE_COLOR,设置后在渲染的窗体中变为完全透明——点击穿透到下方内容,相应像素不绘制。默认-1禁用效果。

Visible

窗体是否可见。Boolean,默认True。在窗体隐藏时将Visible设置为True等效于调用Show vbModeless;设置为False等效于调用Hide

WhatsThisButton

True时,标题栏显示"?"帮助按钮——但仅当MinButtonFalseMaxButtonFalseControlBoxTrueBorderStyle不是工具窗口样式时。Boolean

WhatsThisHelp

True时,WhatsThisMode和标题栏帮助按钮进入 Windows 的"这是什么?"光标模式。Boolean,默认False

Width

窗体的外部宽度,默认以缇为单位(或容器ScaleMode单位)。Double。设置它会调整窗口大小。运行时受MinWidthMaxWidth约束(非零时)。

WindowState

窗口的正常/最小化/最大化状态。FormWindowStateConstants的成员:vbNormal(0,默认)、vbMinimized(1)或vbMaximized(2)。在运行时设置会立即更新窗口位置(如果窗体可见)。

方法

Circle

使用ForeColor绘制轮廓,使用FillColor/FillStyle填充内部,在窗体上绘制圆、椭圆或弧。

语法:object.Circle [ Step ] ( X, Y ), Radius [, [ Color ] [, [ Start ] [, [ End ] [, Aspect ] ] ] ]

X, Y
必需 圆心,以ScaleMode单位表示。Step使圆心相对于(CurrentXCurrentY)。
Radius
必需ScaleMode单位给出半径的Single
Color
可选 轮廓的OLE_COLOR;默认为ForeColor
StartEnd
可选 以弧度为单位的角,用于绘制弧而非完整圆。
Aspect
可选 垂直与水平半径的比率。1.0为圆形;偏离1.0的值产生椭圆。

Cls

清除由CircleLinePSetPaintPicturePrint执行的任何绘图,以BackColor重绘,并将CurrentX / CurrentY重置为0。不影响Picture背景或子控件。

语法:object.Cls

Close

启动窗体的卸载序列——QueryUnload,然后Unload,然后Terminate。前两个事件中的任一都可以通过将Cancel设置为非零来取消关闭。等效于语言语句Unload Me

语法:object.Close

Hide

隐藏窗体而不卸载它。类实例及其控件被保留;调用Show(或赋值Visible = True)可再次显示。等效于赋值Visible = False

语法:object.Hide

Line

使用ForeColor(或显式颜色)和DrawWidth/DrawStyle在窗体上绘制直线或矩形。

语法:object.Line [ [ Step ] ( X1, Y1 ) ] -[ Step ] ( X2, Y2 ) [, [ Color ] [, B [ F ] ] ]

X1, Y1
可选 起点,以ScaleMode单位表示。Step使点相对于(CurrentXCurrentY)。省略时,从当前画笔位置开始绘制。
X2, Y2
必需 终点,以ScaleMode单位表示。Step使点相对于(X1Y1)。
Color
可选 线条的OLE_COLOR;默认为ForeColor
B
可选 绘制以(X1Y1)和(X2Y2)为对角的矩形而非线条。
F
可选B组合时,使用ForeColor而非FillColor/FillStyle填充矩形。

Move

在单次调用中重新定位并可选地调整窗体大小。

语法:object.Move Left [, Top [, Width [, Height ] ] ]

Left
必需 给出新水平位置的Single
TopWidthHeight
可选 对应属性的新值。省略的值保持不变。

OLEDrag

从窗体启动 OLE 拖动操作,触发OLEStartDrag事件以便应用程序填充DataObject

语法:object.OLEDrag

PaintPicture

StdPicture绘制到窗体上,支持可选缩放和光栅操作。

语法:object.PaintPicture Picture, X1, Y1 [, Width1 [, Height1 [, X2 [, Y2 [, Width2 [, Height2 [, Opcode [, StretchQuality ] ] ] ] ] ] ] ]

Picture
必需 要绘制的StdPicture
X1, Y1
必需 目标左上角,以ScaleMode单位表示。
Width1, Height1
可选 目标尺寸;默认为图片的自然尺寸。
X2, Y2, Width2, Height2
可选 图片内的源矩形;默认为整个图片。
Opcode
可选 光栅操作代码(RasterOpConstants的成员)。默认为vbSrcCopy
StretchQuality
可选 缩放时的插值方法。默认为正常质量。

PopUpMenu

Menu作为上下文菜单弹出显示在指定位置。

语法:object.PopUpMenu Menu [, Flags [, X [, Y [, DefaultMenu ] ] ] ]

Menu
必需 要显示的Menu控件。菜单必须已存在于窗体上(或其 MDI 父窗体上)。
Flags
可选 MenuControlConstants的组合,控制对齐方式和哪些鼠标按钮触发菜单项。
X, Y
可选 锚定菜单的屏幕相对位置,以ScaleMode单位表示。默认为当前鼠标位置。
DefaultMenu
可选 以粗体渲染为默认操作的Menu子项。

Point

INFO

保留用于 VB6 兼容性;twinBASIC 中当前未实现。在 VB6 中此方法返回绘图表面单个像素的OLE_COLOR

语法:object.Point( X, Y )

Print

使用Font将文本写入窗体的绘图表面,从CurrentX / CurrentY开始并随着输出推进。通过 VB6 Print语句分派,因此多个表达式可以用;(无间距)或,(跳到下一个打印区)分隔。**Spc(n)**插入n个空格,Tab(n)移到打印列n。输出遵循FontForeColorFontTransparent,当AutoRedrawTrue时,记录到持久离屏位图中以在失效时存活。

语法:object.Print [ expressionlist ] [ ; | , ]

末尾的;,抑制换行,使下一个Print调用继续在同一行;没有末尾分隔符时,画笔推进到下一行的开头。

vb
Me.CurrentX = 10 : Me.CurrentY = 10
Me.Print "Name: "; sName, "Age: "; nAge      ' 两个字段,制表符分隔
Me.Print                                     ' 空行
Me.Print "Total: " & Format$(Total, "0.00")

PrintForm

通过Printer对象将窗体当前视觉状态的屏幕截图发送到默认打印机。

语法:object.PrintForm [ ImplicitEndDoc [, OutputAtCurrentPosition ] ]

ImplicitEndDoc
可选True(默认)时,打印作业在返回前完成;当False时,窗体作为页面发送但打印作业保持打开以供进一步输出。
OutputAtCurrentPosition
可选True时,窗体在打印机当前画笔位置渲染而非页面原点。Boolean,默认False

PSet

将窗体上的单个像素设置为指定颜色。

语法:object.PSet [ Step ] ( X, Y ) [, Color ]

X, Y
必需 像素位置,以ScaleMode单位表示。Step使位置相对于(CurrentXCurrentY)。
Color
可选 OLE_COLOR;默认为ForeColor

Refresh

强制窗体立即重绘,当AutoRedrawFalse时触发Paint

语法:object.Refresh

Scale

通过分配ScaleLeftScaleTopScaleWidthScaleHeight在单次调用中设置窗体的逻辑绘图矩形。将ScaleMode切换为vbUser。不带参数调用Scale将矩形重置为与客户区以像素 1:1 映射。

语法:object.Scale [ ( X1, Y1 )-( X2, Y2 ) ]

X1, Y1
可选 左上角的逻辑坐标。
X2, Y2
可选 右下角的逻辑坐标。

ScaleX

将水平长度从一个ScaleMode转换为另一个。

语法:object.ScaleX( Width [, FromScale [, ToScale ] ] )

Width
必需 给出源长度的Single
FromScaleToScale
可选 ScaleModeConstants的成员。省略时默认为当前ScaleMode

ScaleY

将垂直长度从一个ScaleMode转换为另一个。

语法:object.ScaleY( Height [, FromScale [, ToScale ] ] )

Height
必需 给出源长度的Single
FromScaleToScale
可选 ScaleModeConstants的成员。省略时默认为当前ScaleMode

SetFocus

激活窗体并将输入焦点赋予TabIndex0的控件(或此窗体上最后持有焦点的控件)。

语法:object.SetFocus

Show

使窗体可见。在首次调用时触发Load

语法:object.Show [ Modal [, OwnerForm ] ]

Modal
可选 FormShowConstants的成员:vbModeless(0,默认——调用立即返回)或vbModal(1——调用阻塞直到窗体关闭且用户无法与其他窗体交互)。
OwnerForm
可选 对于模态显示,在此窗体打开期间被禁用的窗体;默认为当前活动窗体。

TextHeight

返回给定字符串使用窗体当前Font绘制时将占用的宽度,以ScaleMode单位表示。

语法:object.TextHeight( Str )

Str
必需 要测量的String

TextWidth

返回给定字符串使用窗体当前Font绘制时将占用的宽度,以ScaleMode单位表示。

语法:object.TextWidth( Str )

Str
必需 要测量的String

ValidateControls

触发此窗体上当前活动控件的Validate事件。如果处理程序将Cancel设置为TrueValidateControls引发运行时错误 380(Invalid property value);调用者可以用On Error包裹以检测失败的验证。适用于在保存或关闭之前检查待处理的输入。

语法:object.ValidateControls

WhatsThisMode

进入 Windows 的"这是什么?"光标模式——下次点击控件会触发该控件的帮助而非激活它。WhatsThisHelp必须为True

语法:object.WhatsThisMode

ZOrder

将窗体置于顶级 z 顺序的前面或后面。

语法:object.ZOrder [ Position ]

Position
可选 ZOrderConstants的成员:vbBringToFront(0,默认)或vbSendToBack(1)。

事件

Activate

当窗体成为应用程序中的活动窗口时触发——无论是Load后首次显示,还是从另一个窗口重新获得激活时。

语法:object_Activate( )

Click

当用户单击窗体客户区(即不在任何子控件上)时触发。

语法:object_Click( )

DblClick

当用户双击窗体客户区时触发。

语法:object_DblClick( )

Deactivate

当应用程序中的另一个窗口从此窗体夺取激活时触发。当激活移到不同应用程序的窗口时不触发。

语法:object_Deactivate( )

DPIChange

当窗体移动到具有不同 DPI 缩放的显示器时触发,但仅当应用程序是每显示器 DPI 感知的(PROCESS_PER_MONITOR_DPI_AWARE)。事件的NewDPI参数给出新的有效 DPI;子控件自动重新缩放。twinBASIC 新增。

语法:object_DPIChange( NewDPI As Long )

DragDrop

当手动拖动操作在目标控件上结束时在该控件上触发。

语法:object_DragDrop( Source As Control, X As Single, Y As Single )

DragOver

当手动拖动操作进行中时在光标下方的控件上触发。

语法:object_DragOver( Source As Control, X As Single, Y As Single, State As Integer )

GotFocus

当窗体获得输入焦点且没有启用的子控件可以代替它获得焦点时触发。没有可聚焦子控件的窗体直接获得焦点。

语法:object_GotFocus( )

Initialize

触发一次,在底层窗口创建之前和窗体的任何子控件存在之前。适用于设置窗体级字段的初始值。不能从此事件引用窗体的控件。

语法:object_Initialize( )

KeyDown

当用户按下任何键时触发。默认在焦点控件上触发;当KeyPreviewTrue时,先在窗体上触发。

语法:object_KeyDown( KeyCode As Integer, Shift As Integer )

KeyPress

当用户键入产生 ANSI 击键的字符时触发。默认在焦点控件上触发;当KeyPreviewTrue时,先在窗体上触发。

语法:object_KeyPress( KeyAscii As Integer )

KeyUp

当用户释放键时触发。默认在焦点控件上触发;当KeyPreviewTrue时,先在窗体上触发。

语法:object_KeyUp( KeyCode As Integer, Shift As Integer )

LinkClose

INFO

保留用于 VB6 DDE 功能兼容性;twinBASIC 中当前不触发。

LinkError

INFO

保留用于 VB6 DDE 功能兼容性;twinBASIC 中当前不触发。

LinkExecute

INFO

保留用于 VB6 DDE 功能兼容性;twinBASIC 中当前不触发。

LinkOpen

INFO

保留用于 VB6 DDE 功能兼容性;twinBASIC 中当前不触发。

Load

在窗体的窗口和所有控件创建之后,窗体首次显示在屏幕之前触发。经典的初始化位置——填充控件、附加数据源以及执行需要控件存在的任何初始化。默认事件。

语法:object_Load( )

LostFocus

当窗体失去输入焦点时触发。

语法:object_LostFocus( )

MouseDown

当用户在窗体客户区上方按下任何鼠标按钮时触发。

语法:object_MouseDown( Button As Integer, Shift As Integer, X As Single, Y As Single )

MouseMove

当光标在窗体客户区上方移动时触发。

语法:object_MouseMove( Button As Integer, Shift As Integer, X As Single, Y As Single )

MouseUp

当用户在窗体客户区上方释放鼠标按钮时触发。

语法:object_MouseUp( Button As Integer, Shift As Integer, X As Single, Y As Single )

MouseWheel

当鼠标滚轮在窗体上方转动时触发。twinBASIC 新增。

语法:object_MouseWheel( Delta As Integer, Horizontal As Boolean )

OLECompleteDrag

当 OLE 拖动操作完成时在源控件上触发,指示目标接受了哪种效果(复制、移动、无)。

语法:object_OLECompleteDrag( Effect As Long )

OLEDragDrop

当用户将数据放置在目标控件上时触发。

语法:object_OLEDragDrop( Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single )

OLEDragOver

当 OLE 拖动经过目标控件时在该控件上触发。

语法:object_OLEDragOver( Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single, State As Integer )

OLEGiveFeedback

在拖动期间在源控件上触发,以便应用程序可以调整光标或其他视觉反馈。

语法:object_OLEGiveFeedback( Effect As Long, DefaultCursors As Boolean )

OLESetData

当目标请求已注册但尚未提供的数据格式的数据时在源控件上触发。

语法:object_OLESetData( Data As DataObject, DataFormat As Integer )

OLEStartDrag

在 OLE 拖动开始时在源控件上触发,以便应用程序可以填充DataObject并选择允许的效果。

语法:object_OLEStartDrag( Data As DataObject, AllowedEffects As Long )

Paint

当窗体的失效部分需要重绘时触发。当AutoRedrawTrue时被抑制——窗体的持久离屏缓冲区被位块传送到屏幕。

语法:object_Paint( )

QueryUnload

在窗体卸载之前触发,给应用程序确认或取消关闭的机会。将Cancel设置为非零可保持窗体打开。始终在Unload之前触发。

语法:object_QueryUnload( Cancel As Integer, UnloadMode As Integer )

Cancel
设置为非零(任何非零值,约定为1)以取消关闭。
UnloadMode
QueryUnloadConstants的成员,标识触发关闭的原因——关闭按钮、代码、Windows 关机、MDI 父窗体或所有者窗体。

Resize

当窗体调整大小时触发——由用户、代码、操作系统在WindowState更改后或首次显示期间的初始布局触发。

语法:object_Resize( )

Terminate

在窗体的窗口已销毁且类实例即将释放后触发。此时控件不再可访问。

语法:object_Terminate( )

Unload

QueryUnload通过之后和窗体窗口销毁之前触发。将Cancel设置为非零可保持窗体打开并阻止卸载。

语法:object_Unload( Cancel As Integer )

Cancel
设置为非零(任何非零值,约定为1)以取消卸载。

twinBASIC及其LOGO版权为作者"韦恩"所有