ここで、c# で記述された Windows アプリで最も奇妙な問題が発生しています。
特別なことは何もありませんが、メイン ウィンドウは、プライマリ モニターと、セカンダリ モニターがプライマリ モニターの右側に立つように構成されている場合に、完全に正常に機能します。ただし、セカンダリ スクリーンをプライマリ モニタの左側に配置するように再構成すると、フォームのサイズを変更できなくなります。マウス ポインターは「NW-SE-arrows」に変化せず、エッジをクリック & ドラッグしても、ウィンドウのサイズの変化に反応しません。
追加の実験を行うと、フォームの AutoSizeMode が GrowAndShrink に設定されている場合にのみ、これが表面化するようです!?
これはある種のバグですか、それともプロパティを誤解していますか?
この問題を再現するには、
- 新しい WinForms プロジェクトを開始する
- フォームの下部に StatusStrip を追加します
- プロジェクトを実行します(私の場合はデバッグ/任意のCPU)
- フォームをプライマリ モニターの左側にあるセカンダリ モニターにドラッグします。
PS: StatusStrip を削除すると、フォームのサイズをまったく変更できないように見えるので、これは StatusStrip オブジェクトの副作用/バグであると推測しています...
次のコード ビハインドでチェックボックスを追加すると、問題が AutoSizeMode プロパティに関係していることを明確にできます。
private void chkAutoGrowAndShrink_CheckedChanged(object sender, EventArgs e)
{
this.AutoSizeMode = chkAutoGrowAndShrink.Checked ?
AutoSizeMode.GrowAndShrink :
System.Windows.Forms.AutoSizeMode.GrowOnly;
}
アップデート:
最近マシンを切り替えたので、VS2010 を使用してこの新しいラップトップでテストをやり直したところ、問題はなくなりました。これがどこから来たのかはまだわかりません.NETで修正されたのかもしれません.ドライバーの問題だったのかもしれません..閉じるようにマークします。貴重な時間を割いてくださった皆様、ありがとうございました!