vb6 的类内 withEvents 标记的变量不能触发事件的原因

来源:互联网 发布:模板制作软件 编辑:程序博客网 时间:2024/06/04 18:09

很长时间不用 vb6,最近整理一个老程序,决定把分散在各处的 msFlexGrid 的处理集中起来,主要是使 msFlexGrid 的可写处理写在一个类里——现在几乎每个窗体都有一个近似的代码 copy。

在封闭事件时出现了问题:在类内定义了 Dim WithEvents m_FG As MSFlexGrid,然后定义 Private Sub m_FG_KeyPress(KeyAscii As Integer) 事件,结果测试时该事件总是不能执行。

这个问题一直困扰半天,查遍资料也无解。

最后发现在调用方:

sub form_load()

    dim fg_ as 类

    set fs_.FG=me.FG

end sub

这个类对象定义到了过程内,这样过程运行结束,对象也就消失,怎能处理事件?把该对象定义到过程外,问题解决。 这其实是小问题,因为长期不用 vb,所以没有注意到。

原创粉丝点击