C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: vb.net2005で縦だけ最大化


(過去ログ 126 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■74908 / inTopicNo.1)  vb.net2005で縦だけ最大化
  
□投稿者/ 優希(ゆき) (46回)-(2015/02/09(Mon) 11:28:56)

分類:[VB.NET/VB2005 以降] 

開発環境:Win7
言語:.net2005

先日は、ありがとうございました。

今回は、フォームを開いた際にフォーム、タブコントロール、スクロールパネル、その上のパネルを縦だけ最大化して表示させたいのですが
下記処理で行った所、縦の最大化は可能になりましたが、何故か左側半分だけ表示されないという状況になってしまいました。

        Me.Height = System.Windows.Forms.Screen.GetWorkingArea(Me).Height

        Dim oControl As Control

        For Each oControl In Me.Controls
            If oControl.GetType Is GetType(Panel) Then

                oControl.Height = System.Windows.Forms.Screen.GetWorkingArea(Me).Height

            End If

        Next

        TabControl1.Height = System.Windows.Forms.Screen.GetWorkingArea(Me).Height



この処理で間違っているところがあれば教えて下さい。

パネルはタブページが7つ×2(スクロールパネルとその上のパネル)で14個になります。



引用返信 編集キー/
■74911 / inTopicNo.2)  Re[1]: vb.net2005で縦だけ最大化
□投稿者/ Azulean (2回)-(2015/02/09(Mon) 12:41:20)
2015/02/09(Mon) 12:43:29 編集(投稿者)

推測ですが、Me.Controls ではすべてが対象にならないということではないでしょうか?
パネルの上に貼られているコントロールはそのパネルの Controls を見る必要がありますが、そういうことではないですか?

// はずしてたらすみません。
// 「左側半分だけ」という部分をもっと具体的にしてもらった方がよいかも。
引用返信 編集キー/
■74914 / inTopicNo.3)  Re[2]: vb.net2005で縦だけ最大化
□投稿者/ 優希(ゆき) (47回)-(2015/02/09(Mon) 13:41:56)
No74911 (Azulean さん) に返信
> 2015/02/09(Mon) 12:43:29 編集(投稿者)
>
> 推測ですが、Me.Controls ではすべてが対象にならないということではないでしょうか?
> パネルの上に貼られているコントロールはそのパネルの Controls を見る必要がありますが、そういうことではないですか?


For each文を同じフォーム上の別の処理で使用しておりそちらでは問題はないので、関係ないかと思われます。


> // はずしてたらすみません。
> // 「左側半分だけ」という部分をもっと具体的にしてもらった方がよいかも。

具体的に言いますと、一番下のフォームの画面が表示されている状態になってしまいます。



引用返信 編集キー/
■74924 / inTopicNo.4)  Re[3]: vb.net2005で縦だけ最大化
□投稿者/ Azulean (435回)-(2015/02/09(Mon) 22:24:05)
No74914 (優希(ゆき) さん) に返信
> For each文を同じフォーム上の別の処理で使用しておりそちらでは問題はないので、関係ないかと思われます。

「同じようなコントロールの構造(階層)である」が真となるのであれば、そうだと思います。
念のため、表示 - その他 - ドキュメントアウトライン でどのような階層になっているかを見比べて、違いがなければ関係ないと言うことがわかります。


> 具体的に言いますと、一番下のフォームの画面が表示されている状態になってしまいます。

こうなるためには、(1)先述のように Me.Controls に対象のコントロールがいない、(2)Is GetType(Panel) を満たす条件のコントロールではない のでは?
ブレークポイントを置いてみて、縦が最大化されるはずのコントロールがその If 文の中に来ているか確かめてみてはいかがでしょうか。

また、対象のコントロール自体がきちんときていても、その中に貼り付けられているコントロールの Dock プロパティや Anchor プロパティの違いによって別フォームと異なる振る舞いをしている可能性もあります。
引用返信 編集キー/
■74926 / inTopicNo.5)  Re[4]: vb.net2005で縦だけ最大化
□投稿者/ 優希(ゆき) (48回)-(2015/02/10(Tue) 09:17:41)
Azuleanさん

あれからベタ書きでウインドウサイズを指定して、1つずつ確認した所2枚目のスクロールパネル全部とタブインデックスを変更すれば問題ないことが分かりましたので、締め切らせていただきます。

回答いただいたのにこのような結果になってしまい。すみませんでした。

もし、またありましたらよろしくお願いします。


解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -