Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vb.net中的Outlook类库-使用Messagebox时会冻结_Vb.net_Outlook_Messagebox_Freeze - Fatal编程技术网

vb.net中的Outlook类库-使用Messagebox时会冻结

vb.net中的Outlook类库-使用Messagebox时会冻结,vb.net,outlook,messagebox,freeze,Vb.net,Outlook,Messagebox,Freeze,我在为Outlook 2003(vb.NET 4.0、WinXP SP3、Visual Studio 2010)编写插件时遇到了一个相当奇怪的行为 我正在通过菜单打开设置窗口(Windows窗体)。除了更改用户设置外,还可以单击按钮调用从远程服务器导入XML文件的函数 这个函数除了从本地文件夹中删除旧文件并使用My.Computer.FileSystem方法从服务器复制新文件外,没有其他作用 现在是最重要的部分:成功复制文件后,将显示一个消息框来通知用户。从关闭窗体的那一刻起,Outlook和安

我在为Outlook 2003(vb.NET 4.0、WinXP SP3、Visual Studio 2010)编写插件时遇到了一个相当奇怪的行为

我正在通过菜单打开设置窗口(Windows窗体)。除了更改用户设置外,还可以单击按钮调用从远程服务器导入XML文件的函数

这个函数除了从本地文件夹中删除旧文件并使用My.Computer.FileSystem方法从服务器复制新文件外,没有其他作用

现在是最重要的部分:成功复制文件后,将显示一个消息框来通知用户。从关闭窗体的那一刻起,Outlook和安装窗口都会冻结,但不会完全冻结,例如,您仍然可以使用键盘关闭安装窗体。它只是对老鼠不再有反应。如果我通过键盘关闭设置窗体,我也会从调用窗体的函数中得到“object reference not set to a instance of a object”(对象引用未设置为对象实例)错误(关闭窗体后,它会立即进入错误处理)。Outlook保持冻结状态,我必须终止该过程

我注意到的其他事项:

1.)如果新的XML文件未被复制,且函数提前终止(即,由于当前版本已存在或服务器不可用),则生成的消息框不会冻结程序

2.)将有问题的messagebox从函数移动到表单的按钮单击事件不会改变任何内容

3.)卸下messagebox可以解决问题。但是安装表单创建的下一个messagebox将导致相同的错误

4.)用WPF System.Windows.MessageBox替换常用的System.Windows.Forms.MessageBox也解决了这个问题。但是,MsgBox函数会导致相同的故障

5.)在Outlook中,我仍然可以通过鼠标浏览文件夹,但无法访问菜单栏或按钮,也无法用“X”关闭窗口

6.)如果新文件无效,将删除该文件,并重命名旧文件。在这种情况下,将显示两条消息,而这一次,只有在第二次单击按钮并且在最后一个(第四个)消息框关闭后,程序才会冻结。如果在两次单击之间关闭并重新打开设置窗体,则所有内容都将保持正常工作。此外,Outlook本身可以在安装窗体关闭后正常使用(它不会冻结菜单/按钮)

7.)这在调试模式下发生,但在正常模式下也会发生

有人知道为什么会这样吗


谢谢

MessageBox显示禁用其他窗口的模式对话框。听起来它们好像没有被重新启用。当你ab/使用线程时,典型的问题。我没有使用任何额外的线程。它只是一个显示消息框的windows窗体。我最近也遇到了一个不同形式的问题,但这是第一次发生在这个形式上。。。