我有一个用作数据输入向导的表单。它承载一系列面板,每个面板都停靠以填充显示区域。我一直在使用 VS 2010 和 VS 2012 RC 使用显示器,一段时间以来没有任何问题。
但是,我最近安装了 VS 2012 RTM 并遇到了这个奇怪的问题:在 IDE 中使用 F5 运行应用程序时,App.vshost.exe 显示的表单太窄了几个像素,并且会弄乱停靠面板的显示在向导中。直接运行 App.exe 时(通过 IDE 中的 Ctrl-F5 或直接运行 .exe),窗体大小正确。调试和发布配置都会出现同样的问题。
我在 VS 2010 中测试了代码,对于这个特定的向导和页面,App.vshost.exe 和 App.exe 的显示相同。
我已将其缩小为将表单显示为对话框,其中显示的表单将其 FormBorderStyle 设置为 FixedSingle。例子:
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
SubForm subForm = new SubForm();
subForm.ShowDialog(this);
}
}
public partial class SubForm : Form
{
public SubForm()
{
InitializeComponent();
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
}
}
在上面的示例中,显示的 SubForm 的大小取决于您运行的是 App.vshost.exe 还是 App.exe。(在我的实际代码中,表单边框样式设置为基本表单的 .Designer.cs 文件的一部分。)
有谁知道为什么编译后的 App.vshost.exe 会以不同的方式显示?更好的是,有谁知道我可以如何调整 VS 2012 以便我可以信任 App.vshost.exe 的显示输出?谢谢!