我目前在VS2010生成的安装程序中使用自定义表单。这是代码
namespace MyWinFormApp
{
[RunInstaller(true)]
public partial class MyInstaller : System.Configuration.Install.Installer
{
public MyInstaller()
{
InitializeComponent();
}
public override void Install(System.Collections.IDictionary stateSaver)
{
base.Install(stateSaver);
}
public override void Commit(IDictionary savedState)
{
base.Commit(savedState);
InstallForm topmostForm = new InstallForm();
topmostForm.BringToFront();
topmostForm.TopMost = true;
topmostForm.ShowDialog();
}
}
}
这显示我的InstallForm作为弹出窗口,而我的安装程序生成向导仍然挂在后台。这里的问题是,即使我试图使其成为模态。它仍然允许在我的Windows 7 pc上安装时在安装程序生成的向导上执行操作。它不是真正的模态。
有什么方法可以将我的InstallForm设置为模态或让它显示为安装程序生成的向导窗口之一,而不是单独作为弹出窗口显示?
使用其他安装创建者不是一种选择。我只需要使用Visual Studio。
答案 0 :(得分:1)
我知道制作表单模式的唯一方法是使表单的安装程序生成向导窗口所有者。但这不是一项微不足道的任务。另一个复杂因素是您的表单和安装程序生成向导在不同的进程中运行。
克服它的一种方法是隐藏安装程序向导窗口。虽然我不确定这是一个简单的方法。否则您将面临与上述相同的问题:您必须找到正确的安装程序窗口。
更好的方法不会使用自定义操作中显示的表单。您可以创建本机 MSI表单并将其插入向导UI序列。形式需要是最重要的;我不建议在安装程序中使用最顶层的窗口。