- - PR -
MDIアプリで解像度変更
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-10-19 14:51
お世話になります。
VB.NETにてWinアプリ(MDI)を開発しています。 現在解像度の変更時に伴う問題で悩んでいます。 どなたか解決方法及び、情報をお持ちでしたらアドバイスお願いします。 現状、親フォームの中に子フォームが起動されている状態で、 かつ、子フォームは親フォームにちょうど収まってる状態と考えてください。 以下の2パターンで解像度を変更してみました。 ※解像度は[1024x768]→[800x600] 1.アプリを起動させた状態で解像度を変更した場合。 2.アプリを起動させる前に解像度を変更した場合。 1の場合だと、子フォームはリサイズされるのですが、 2の場合だと、子フォームはリサイズされず全表示できず、 画面が切れてしまっています。 どうしたものかと悩んでいます。。。 またMDIアプリを作成上、解像度を考慮に入れた作りにするは、 どのようなことをすればよいのでしょうか? よろしくお願いします。 | ||||
|
投稿日時: 2004-10-19 16:42
南部です。
つまり、子フォームのサイズが固定ということですね。 //こんな感じのコードではないかもしれませんが。 Form f = new ChildForm(); f.MdiParent = this; f.Show(); f.Dock = DockStyle.Fill; で、いけません? # show()してから Fillで。 | ||||
|
投稿日時: 2004-10-19 17:23
早速の返答ありがとうございます。
子フォームのサイズが固定。 まさにそのとおりなのですが、 うまく説明できずに認識がずれてました。 すいません、以下の文章間違ってました。
親フォームは解像度に対してリサイズされます。 ※親フォームは解像度と同じサイズとします。 子フォームはリサイズされずに、同じサイズのまま起動されます。 ゆえに解像度を変更した時点で、親フォームにちょうど収まっていた 子フォームが収まりきらなくなってます。 収まりきらないのは仕方無いのですが、 親フォームをスクロールすれば子フォーム全体を見れる状態にしたいです。 うまく説明できなくてすみませんでした。 | ||||
|
投稿日時: 2004-10-19 23:24
南部です。
いまいち、飲み込めていません。
親ウィンドウは問題になっていないのですね? 解像度を下げられてしまうと、 「親ウィンドウのワーキングエリアが子ウィンドウのサイズより 小さくなってしまうため、子ウィンドウが一部しか表示されない。」 ですか? でもこの場合、スクロールバーでません? #やっぱり、理解できていないような、、、 | ||||
|
投稿日時: 2004-10-20 10:16
お世話になります。
上記認識で問題ないです。 スクロールバーは出るのですが、 子ウィンドウの端が切れて表示されてしまい、 左下部に配置してあるボタンなどが表示できないのです。 う〜ん、.NetFrameworkの不具合なんでしょうか? | ||||
|
投稿日時: 2004-10-20 11:29
南部です。
なんとなく分かってきました。 子ウィンドウの端が切れるということは、 「子ウィンドウのサイズが小さくなり、子ウィンドウのClientRectの外に でてしまったコントロールが表示されない。」 ですか? 左下部に配置してあるボタンのAnchorを Bottom, Left にするか、 子ウィンドウのAutoScrollをtrueにすればよいような。 #やっぱり分かってないようならごめんなさい。 | ||||
|
投稿日時: 2004-10-21 11:19
お世話になっています。
子ウィンドウのAutoScrollをTrueにすることで解決としました。 当初は、親ウィンドウにはスクロールがあっても、 子ウィンドウにはスクロールが無いものとして考えていました。 最後までアドバイスしていただきありがとうございました。^^ |
1