vb6 - 没有表单激活的自定义 MsgBox 被触发

标签 vb6 msgbox

我开发了一个自定义的 MsgBox,几乎在所有方面都可以正常工作。唯一的问题是,当 MsgBox 关闭时,父窗体会运行 Form_Activate 代码。普通的 MsgBox 不会(再次)运行该代码。

我知道我可以向 Form_Activate 添加一个 bool 变量来检查它是否已经触发,但是当您有十几个表单时,这不是最好的解决方案。 那么,有没有办法在关闭我的自定义 MsgBox 后不运行 Form_Activate 呢? MsgBox 表单是否需要某种特殊类型或其他类型?我尝试了所有 BorderStyles,但这没有任何区别。

最佳答案

您是否使用其他表单来制作自定义 MsgBox?

您不应该直接使用其他表单来显示自定义消息框。 您应该创建一个 Activex 控件,并且当 MsgBox 关闭时,Activate 事件不会再次触发。

如果需要,您可以在控件中使用表单。 (可能只需将代码放入 ActiveX 控件项目中并在表单中使用它)

我就是这么用的。

这是一个使用 Activex 控件的自定义 MsgBox 示例,还带有一个测试表单。

http://www.codeguru.com/code/legacy/vb_othctrl/2166_CustomMsgBox.zip

关于vb6 - 没有表单激活的自定义 MsgBox 被触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15092861/

相关文章:

c# - 从 VB6 和 C# 调用 DLL 的 double 结果略有不同

c++ - 我怎么知道一个目录是VB6中的回收站?

c# - asp.net 的确认消息框功能?

image - 在 VBScript MsgBox 中显示图像

c# - 在 C# 中读取 VB 6 二进制文件

com - 尽管声明保持相同,但没有二进制兼容性

printing - 打印特定区域(组件)

vba - 从 VBA 中的另一个子程序中抑制 MsgBox

vba - MsgBox出现多次...重新排列宏所以只显示一次

excel - 将内容从单元格移动到带有空格的 msgbox?