FormBorderStyle = FixedToolWindowで単純なテストフォームを作成し、マウスを押すとFixedToolWindowとSizableToolWindowの間で切り替わるボタンが追加されました。FixedとSizableの間のFormBorderStyleでの奇妙な動作
これらの2つの間でFormBorderStyleを切り替えると、私のアプリケーションに多くの問題を引き起こす不思議な効果が生じるようです。問題は、ウィンドウがサイズが変わっているように見えることができないことです。私はちょうど境界を変更したい、私は同じままにするために、フォームのサイズが必要です。
private void button1_Click(object sender, System.EventArgs e) {
if(FormBorderStyle == FormBorderStyle.FixedToolWindow) {
System.Diagnostics.Debug.WriteLine("SWITCHING: FIXED -> SIZABLE");
FormBorderStyle = FormBorderStyle.SizableToolWindow;
} else {
System.Diagnostics.Debug.WriteLine("SWITCHING: SIZABLE -> FIXED");
FormBorderStyle = FormBorderStyle.FixedToolWindow;
}
}
そして、私はこの使用をデバッグする:私は、スイッチボタンを押したときに
private void Settings_SizeChanged(object sender, System.EventArgs e) {
System.Diagnostics.Debug.WriteLine(this.Size);
}
そして、ここでは出力です:
SWITCHING: FIXED -> SIZABLE
{Width=373, Height=169}
{Width=383, Height=179}
SWITCHING: SIZABLE -> FIXED
{Width=383, Height=179}
{Width=373, Height=169}
を
例えば、ここでボタンのコードです
この現象を修正するにはどうすればよいですか?そして、 "修正"することによって、可能ならば、これが起こらないようにすることを意味します。私は私のフォームのサイズを指定することができるようにしたいと思います。
また、Formクラスのサブクラス化による解決策は、このような方法でこの問題を解決するためのアイデアがあれば誰にとっても最適な解決策になります。
編集:
問題を示すために少しビデオを作成しました。最初のテストでは、フォームのサイズが実際には変更されず(視覚的に)、フォームの位置のみが少し変化します。デバッグ出力に見られるように、Sizeプロパティの値は変更されます。 2番目のテストでは、Sizeプロパティの値が変更され、ウィンドウサイズ自体も変更されるというデバッグ出力が表示されます。
こちらをご覧ください:
http://screencast.com/t/0vT1vCoyx2u
ありがとうございますが、これは実際に私の全面的な問題を解決するのに役立ちません。だからこそ私はもう一つの質問を作りました。それはもっと関連しているからです。興味があれば、私がそこに残したコメントをチェックしてください。私はこれが将来的に当てはまると思うなら、この答えを正しいもの(この質問のために)としてマークします。当分の間、それはもはや関連性がありません。 –
あなたはこの問題を無視してあなたの新しいものに注意を払うだけでなく、これが*解決しないことを詳しく解説できますか? (リファクタリングが可能なときは、最初から書き直してはいけません!) この議論をリファクタリングしてください。書き直しはしないでください。 – bsneeze
いいえ、できません。ごめんなさい。あなたが他の質問で私を助けたくなければ、大丈夫です。それはあなたの選択ですが、この質問はもはや意味がなく、私はここに戻っていません。あなたのすべての協力に感謝します。 –