WithEvents的Winsock对象问题

时间:2011-06-06 10:08:15

标签: vb6

我正在开发一个用于发送邮件的标准EXE项目。

我有一个使用winsock发送电子邮件的类模块。

我将一个withevents winsock变量设置为表单的winsock控件。

问题是在窗体的控件事件处理程序中捕获了事件。 当我评论表单的控件事件处理程序并在类模块witheevents变量的事件处理程序中放置一个断点时,我无法捕获事件。

请建议解决方法。

1 个答案:

答案 0 :(得分:0)

如果你真的需要创建一个包含组成控件的类(小c),你可以创建一个UserControl,它在运行时是不可见的,根本没有UI交互。然后,作为Winsock控件的容器,此UserControl将接收事件,您可以在那里处理它们。

我经常这样做是为了创建更高级别的通信组件,在内部移动诸如消息帧协议之类的东西。然后我把这些UserControls放到的容器只处理在收到完整消息时引发的事件。我已经做了同样的事情来创建一个可嵌入的HTTP Server控件,将事件引回到包含的Form以处理带参数的GET / POST请求,依此类推以提供Web UI。

Class(big C),Form和UserControl只是你可以在VB6中创建的三种类(小c)。事后看来,“类模块”实际上应该被称为“UserClass”,我认为这是明确的。