为什么vb的load事件不能显示输出

3 篇文章 0 订阅

       任何图形或输出完成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, 2000), 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, 2000), 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, 2000), 1000        '画圆
End Sub
运行结果如上图②



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 21
    评论
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值