データ入力ウィザードとして使用されているフォームがあります。一連のパネルをホストし、各パネルがドッキングして表示領域を埋めます。私は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;
}
}
上記の例では、App.vshost.exe を実行しているか、App.exe を実行しているかによって、表示されるサブフォームのサイズが異なります。(私の実際のコードでは、フォームの境界線のスタイルは、基本フォームの .Designer.cs ファイルの一部として設定されています。)
コンパイルされた App.vshost.exe の表示が異なる理由を知っている人はいますか? さらに良いことに、App.vshost.exe による表示出力を信頼できるように VS 2012 を微調整する方法を知っている人はいますか? ありがとう!