Winforms VS 2012生成的App.exe和App.vshost.exe显示形式不同
我有一个表单正在用作数据输入向导。它承载一系列面板,每个面板停靠以填充显示区域。我一直在使用VS2010和VS2012 RC处理显示器,有一段时间没有出现任何问题 然而,我最近安装了VS 2012 RTM,并遇到了一个奇怪的问题:当在IDE中使用F5运行应用程序时,App.vshost.exe显示的表单太窄了几个像素,并且在向导中扭曲了停靠面板的显示。直接运行App.exe(通过IDE中的Ctrl-F5或直接运行.exe)时,表单大小正确。调试和发布配置都会出现相同的问题 我在VS2010中测试了代码,App.vshost.exe和App.exe在这个特定的向导和页面中显示相同 我已经将其缩小到将窗体显示为对话框,其中显示的窗体将其FormBorderStyle设置为FixedSingle。例如:Winforms VS 2012生成的App.exe和App.vshost.exe显示形式不同,winforms,c#-3.0,visual-studio-2012,vshost.exe,Winforms,C# 3.0,Visual Studio 2012,Vshost.exe,我有一个表单正在用作数据输入向导。它承载一系列面板,每个面板停靠以填充显示区域。我一直在使用VS2010和VS2012 RC处理显示器,有一段时间没有出现任何问题 然而,我最近安装了VS 2012 RTM,并遇到了一个奇怪的问题:当在IDE中使用F5运行应用程序时,App.vshost.exe显示的表单太窄了几个像素,并且在向导中扭曲了停靠面板的显示。直接运行App.exe(通过IDE中的Ctrl-F5或直接运行.exe)时,表单大小正确。调试和发布配置都会出现相同的问题 我在VS2010中测试
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;
}
}
在上面的示例中,显示的子窗体的大小因您运行的是App.vshost.exe还是App.exe而异。(在我的实际代码中,表单边框样式设置为基本表单的.Designer.cs文件的一部分。)
有人知道为什么编译后的App.vshost.exe会以不同的方式显示吗?更好的是,有人知道我如何调整VS 2012,以便我可以信任App.vshost.exe的显示输出吗?谢谢 所以,事实证明它是Visual Studio 2012中的一个bug。建议的解决方法是禁用Visual Studio宿主进程 错误跟踪: