4

ここで、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で修正されたのかもしれません.ドライバーの問題だったのかもしれません..閉じるようにマークします。貴重な時間を割いてくださった皆様、ありがとうございました!

4

2 に答える 2

0

この問題は、ハードウェア/ドライバー/特定のバージョンの.NET/???にあるようです。関連している。そのような最後の質問。

于 2011-12-15T10:58:08.743 に答える
0

フォーム上にない StatusStrip でサイズを変更できない場合は、別の問題が発生しています。FormBorderStyleプロパティを固定スタイルに設定しない限り、すべてのフォームはサイズ変更可能である必要があります。

于 2010-09-06T17:07:05.687 に答える