- ベストアンサー
VisualStudioでのフォーム改変作業
プログラミング初心者です。あるソフトのフォームデザイン改変作業を行なっています(VisualStudio2005 C#を使用)。 ソリューションエクスプローラ欄から目的フォームの.csファイルをダブルクリックするとフォームが表示されます。通常はこの画面とプロパティ欄を操作するだけで改変できるのですが、「フォームの最大化ボタンを押して最大化した場合、フォームはどんなレイアウトになるか」を知りたいです。 なお未完成のソフトのため、ビルドエラーが出てデバッグは出来ません。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>標準状態でのフォームの大きさを変更したりはできますが、最大化した後のフォームを表示するにはどうすればよいのでしょうか? 「フォームデザイナで最大化された時のデザイン」をしたい。 ということですか? そういう機能はおそらくありません。 環境によって、最大化された時のウィンドウサイズはまちまちになります。 デスクトップのサイズが800x600と1280x600とか1440x900とか1920x1080とか……ばらばらですよね? よって…サイズ変更イベント内で各コントロールの位置を適切に移動させる。 ということになるかと思われます。 # 破綻しない範囲で…このコントロールはXサイズのほにゃらら%の位置からほにゃらら%のサイズに…とかでしょうかねぇ…。 そういうのが面倒。 という場合は、そもそも最大化できないように作るでしょう。 # コントロール沢山配置しすぎて最低サイズ(800x600)でも収まらない。とかいうなら別ですが…。 # ワイド型で妙な解像度があったりしますから縦方向は480以内の方が安全かもしれません。 # 沢山のコントロールを配置しないとならない……なんて場合はタブコントロールで整理すべきでしょうけどね……。 と、ここまで書いてちょいと検索してみると…… http://www.atmarkit.co.jp/fdotnet/csharptips/002anchor/002anchor.html プロパティである程度まで追従して移動してくれるようです。 各コントロールでAnchorプロパティを適切に設定することで、よろしく処理してくれるようです。 右下に配置したボタンならBottomRightとか。 フォーム中で最大化された時に一緒に大きくなってかまわないコントロールならAllとか……。 # 私も勉強になりました…。
その他の回答 (2)
- Wr5
- ベストアンサー率53% (2173/4061)
>出てくるフォーム画面は標準の大きさです。画面上の最大化ボタンを押しても、ドラッグして引っ張っても最大化はしません。このフォームが最大化した場合のフォーム画面を表示する方法を知りたいです。 実行して表示されるフォームに最大化ボタンがあるのに最大化されない…のですか? とくに処理を追加していない場合、最大化ボタンを押したら最大化されるものかと思われますが……。 WM_SYSCOMANNDで無理矢理無視するとか、WM_SIZEで無理矢理…とかしているんでしょうか? それだったらそもそも最大化ボタンをfalseにしてフォームに表示しない。という対応をすべきなのですが……。 サイズ変更イベントでレイアウトを修正する処理が入っていないのではれば、 結果としては#1さんの回答されているように右方向と下方向に余白が出来る(左上(クライアント座標の原点0,0が左上))にコントロールなどが配置されたまま。ということになりますが……。 # 初期サイズより縮む場合は…コントロールが画面からはみ出る状態になるので「はみ出た分は表示されない」ということになるかと…。
補足
すみません。どうも日本語が下手でご迷惑をお掛けします。 >実行して表示されるフォームに最大化ボタンがあるのに最大化されない…のですか? ここで言う「出てくるフォーム画面」とは、プログラムを実行して出てくるフォームではなく、VisualStudioのエクスプローラ欄でフォーム名.csファイルをダブルクリックして表示したフォーム画面のことです。(普通にプログラムを実行すると、ビルドエラーが出てできません)。 右下のプロパティ欄を編集することによって、最大化ボタンを「true」設定で追加したり、標準状態でのフォームの大きさを変更したりはできますが、最大化した後のフォームを表示するにはどうすればよいのでしょうか? という質問でした。
- joqr
- ベストアンサー率18% (742/4026)
何もしていなければ、下、右下、右方向に余白が広がるだけ
補足
すみません。私の文章の書き方が間違っていました。 「フォームの最大化ボタンを押して最大化した場合、フォームはどんなレイアウトになるか」 はcsファイルを開いた後に出てくるフォーム画面の最大化ボタンを押すという意味ではありません。 出てくるフォーム画面は標準の大きさです。画面上の最大化ボタンを押しても、ドラッグして引っ張っても最大化はしません。このフォームが最大化した場合のフォーム画面を表示する方法を知りたいです。
お礼
ご回答ありがとうございました。 一番参考になったこちらの回答をベストアンサーにさせて頂きます。