隐藏应用程序中的Form.ShowDialog

时间:2014-01-31 08:05:53

标签: c# winforms

我有一个以隐藏模式运行的应用程序。在新版本中,我需要更新数据库,这就是我需要显示某些表单以从用户获取更新数据的原因。我使用Form.ShowDialog方法但发生了错误。据说是错误的

  

“当应用程序没有时显示模式对话框或表单   在UserInteractive模式下运行不是有效的操作。指定   ServiceNotification或DefaultDesktopOnly样式显示一个   来自服务应用程序的通知“。

我想我需要以其他方式展示形式,但我不知道如何。

当我运行它时它工作正常,我想我应该手动调用它服务器。但是当另一个服务启动时 代码:

  System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(path);
  startInfo.WorkingDirectory = ServerModel.ServerInfo.ServerDir;
  startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
  System.Diagnostics.Process.Start(startInfo);

发生此错误。

2 个答案:

答案 0 :(得分:2)

我建议使用Windows气球通知,因为它们不能显示来自隐藏应用的消息。

请参阅this link以供参考。

答案 1 :(得分:1)

正如错误消息所示,您必须将MessageBox.Show的选项设置为ServiceNotificationDefaultDesktopOnly。这适用于您可能尝试在应用程序中显示的MessageBox。