任何图形或输出完成Form_Load 过程中不会显示在表单上除非您首先使窗体可见用 Form1.Show 方法,或者如果您设置窗体的 AutoRedraw 属性设置为真(非零)。
当 Form_Load 过程的执行(在程序的开头),默认情况下不还显示该窗体。因此,在 Form_Load 事件,没有图形显示到不存在的窗体除非第一次 (在运行时) 显示窗体或将窗体的AutoRedraw 属性设置 (在设计时或运行的时)。
绘制到窗体的图形的更好方法是让 SubForm_Paint 过程中绘制到窗体的图形。这使 Form.AutoRedraw 属性设置为 FALSE 时,增加速度性能的程序。Visual Basic没有刷新屏幕图像的窗体,窗体重叠与另一个窗口时那样。您 (作为程序员) 都有用于刷新窗体中,责任和 Sub Form_Paint是最合乎逻辑的地方,要处理这种情况。
以下列出的三个绘制到窗体的图形示例。第一个示例演示如何失败图形显示给表单时取自Form_Load 事件过程中。第二个示例演示如何为窗体上,开始绘制一个圆形,但 Form.AutoRedraw 属性必须设置为TRUE,该圆形需要刷新该窗体的事件中,要保留。第三个示例是最佳的方法 ;它是最快和最有效的三个。
Private Sub Form_Load()
Const pi = 3.14159 '声明一个静态变量
Print 100 '在窗体上输出100
Form1.ForeColor = vbRed '设置窗体的前景颜色
Form1.DrawWidth = 1 '设置输出图形的边框的宽度
Form1.FillStyle = 0 '设置填充方式
Form1.FillColor = vbBlue '设置填充颜色
Form1.ScaleMode = 1 '设置对象坐标的度量单位为缇
Circle (3000,2000),1000 '画圆
End Sub
此代码的运行结果如图①
如果将窗体的AutoRedraw(自动重画)属性改为True或者将代码改为
Private Sub Form_Load()
Const pi = 3.14159 '声明一个静态变量
Show
Print 100 '在窗体上输出100
Form1.ForeColor = vbRed '设置窗体的前景颜色
Form1.DrawWidth = 1 '设置输出图形的边框的宽度
Form1.FillStyle = 0 '设置填充方式
Form1.FillColor = vbBlue '设置填充颜色
Form1.ScaleMode = 1 '设置对象坐标的度量单位为缇
Circle (3000,1000 '画圆
End Sub
其效果图为②
例二
Private Sub Form_Click()
Const pi = 3.14159 '声明一个静态变量
Print 100 '在窗体上输出100
Form1.ForeColor = vbRed '设置窗体的前景颜色
Form1.DrawWidth = 1 '设置输出图形的边框的宽度
Form1.FillStyle = 0 '设置填充方式
Form1.FillColor = vbBlue '设置填充颜色
Form1.ScaleMode = 1 '设置对象坐标的度量单位为缇
Circle (3000,1000 '画圆
End Sub
单击窗体,结果如上图②
例三
Private Sub Form_Paint()
Const pi = 3.14159 '声明一个静态变量
Print 100 '在窗体上输出100
Form1.ForeColor = vbRed '设置窗体的前景颜色
Form1.DrawWidth = 1 '设置输出图形的边框的宽度
Form1.FillStyle = 0 '设置填充方式
Form1.FillColor = vbBlue '设置填充颜色
Form1.ScaleMode = 1 '设置对象坐标的度量单位为缇
Circle (3000,1000 '画圆
End Sub
运行结果如上图② 原文链接:https://www.f2er.com/vb/258305.html