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

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

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

追加したフォームコントロールのサイズを変更するには?


(過去ログ 8 を表示中)

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

■7990 / inTopicNo.1)  追加したフォームコントロールのサイズを変更するには?
  
□投稿者/ 田中 二等兵(1回)-(2006/11/01(Wed) 15:01:08)

分類:[C#] 


分類:[C#] 

Form1(メインフォームでBorderStyleはSizable)のコントロールにForm2を追加して、
メインフォーム内にForm2(BorderStyleはNone)を最大化させて表示します。
メインフォームがリサイズされたらForm2もリサイズし、メインフォームの大きさに
フィットさせたいのですがうまくいきません。何か良い方法はありますでしょうか?

private Form2 fm2;

// Form1ロード時
private void Form1_Load(object sender, System.EventArgs e)
{
// Form2をForm1のコントロールに追加して
// Form1の中にForm2を表示
fm2 = new Form2();
fm2.WindowState = FormWindowState.Maximized;
fm2.TopLevel = false;
this.Controls.Add(fm2);
fm2.Show();
fm2.BringToFront();
}

// Form1リサイズ時
private void Form1_Resize(object sender, System.EventArgs e)
{
// Form2のサイズも変更
if (fm2 != null)
{
// 本来はForm1のサイズにフィットさせたいのですが
// とりあえずサイズが変わるかどうか試したかったので
// +20としている
// (これでは変更できないので、どうすればよいのかと・・)
this.fm2.Height += 20;
this.fm2.Width += 20;
}
}

Form2にボタンを配置し、Form1にForm2が表示された後、
このForm2に配置したボタンを押下し、Form2のサイズを変更しようと
してもダメでした。


0
引用返信 編集キー/
■7991 / inTopicNo.2)  Re[1]: 追加したフォームコントロールのサイズを変更するには?
□投稿者/ まどか 中将(278回)-(2006/11/01(Wed) 16:40:28)

分類:[C#] 

なぜ"Form"の中に"Form"を入れるのでしょうか?

特に理由が無いなら、Form2の中身を
・ユーザーコントロールにする
・Panelなどのコンテナへ入れる
のどちらかでDockプロパティをFillにすれば何の処理も必要ありません。
#Form1に関してはですけど。

0
引用返信 編集キー/
■7993 / inTopicNo.3)  Re[2]: 追加したフォームコントロールのサイズを変更するには?
□投稿者/ まきなす 二等兵(12回)-(2006/11/01(Wed) 16:48:54)

分類:[C#] 

やっていることの是非は別として
fm2.WindowState = FormWindowState.Maximized;
をコメントアウトすればよいかと思います。


0
引用返信 編集キー/
■7994 / inTopicNo.4)  Re[3]: 追加したフォームコントロールのサイズを変更するには?
□投稿者/ まきなす 二等兵(13回)-(2006/11/01(Wed) 16:59:16)

分類:[C#] 

ああそうですね。
FormにもDockプロパティはあるので
Form1_Load()のどこかで
fm2.Dock = DockStyle.Fill;
とすればOKですね。
この場合Form1_Resize()での処理は不要です。

でも
fm2.WindowState = FormWindowState.Maximized;
はやっぱり取ってくださいね。

0
引用返信 編集キー/
■7995 / inTopicNo.5)  Re[3]: 追加したフォームコントロールのサイズを変更するには?
□投稿者/ 田中 二等兵(2回)-(2006/11/01(Wed) 17:16:10)

分類:[C#] 

No7993に返信(まきなすさんの記事)
> やっていることの是非は別として
> fm2.WindowState = FormWindowState.Maximized;
> をコメントアウトすればよいかと思います。
>
まどか様、まきなす様、どうもありがとうございます。
まきなす様の言われるようコメントアウトしたら意図した動作となりました。
最大化で表示したいというのが念頭にあったので、これを外そうとは考えて
おりませんでした。
まどか様、本来MDIで実現させようと思っていたのですが、MDIだと親・子が
くっついたときにメニューバーが表示されてしまいますよね。これが邪魔で
何か良い方法は・・・と、考えた結果、こうなってしまいました。


解決済み
引用返信 編集キー/
■7996 / inTopicNo.6)  Re[4]: 追加したフォームコントロールのサイズを変更するには?
□投稿者/ 田中 二等兵(3回)-(2006/11/01(Wed) 17:27:32)

分類:[C#] 

No7994に返信(まきなすさんの記事)
> ああそうですね。
> FormにもDockプロパティはあるので
> Form1_Load()のどこかで
> fm2.Dock = DockStyle.Fill;
> とすればOKですね。
> この場合Form1_Resize()での処理は不要です。
>
> でも
> fm2.WindowState = FormWindowState.Maximized;
> はやっぱり取ってくださいね。

あーーーっ!!
fm2.Dock = DockStyle.Fill;
ほんとだ・・・なんてこった・・・。

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


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

このトピックに書きこむ

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

管理者用

- Child Tree -