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

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

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

Re[2]: tableLayoutPanelの各セルのサイズ


(過去ログ 36 を表示中)

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

■18488 / inTopicNo.1)  tableLayoutPanelの各セルのサイズ
  
□投稿者/ tanaka (53回)-(2008/05/14(Wed) 14:43:21)

分類:[C#] 

tableLayoutPanelの各セルのサイズですが、
全て同じパーセントで設定しているにもかかわらず
サイズが違ってしまいます。(最後の列と行が他より大きい)

【例】
tableLayoutPanel.Height = 100;
tableLayoutPanel.Width  = 100;
RowsCount = 10;
ColumnCount = 10;
それぞれ10%で設定

引用返信 編集キー/
■18489 / inTopicNo.2)  Re[1]: tableLayoutPanelの各セルのサイズ
□投稿者/ れい (529回)-(2008/05/14(Wed) 14:56:56)
2008/05/14(Wed) 14:57:48 編集(投稿者)

No18488 (tanaka さん) に返信
> tableLayoutPanelの各セルのサイズですが、
> 全て同じパーセントで設定しているにもかかわらず
> サイズが違ってしまいます。(最後の列と行が他より大きい)

TableLayoutPanelは左優先、上優先でレイアウトされます。
パーセンテージで指定した場合、Panelに対する割合になります。

割合の合計が1に満たない場合は右端、下端のセルのサイズが指定したものより大きくなります。

追記。

って、10個で10%?
あれ?

引用返信 編集キー/
■18491 / inTopicNo.3)  Re[2]: tableLayoutPanelの各セルのサイズ
□投稿者/ れい (530回)-(2008/05/14(Wed) 15:08:18)
No18488 (tanaka さん) に返信
> 【例】
> tableLayoutPanel.Height = 100;
> tableLayoutPanel.Width = 100;
> RowsCount = 10;
> ColumnCount = 10;
> それぞれ10%で設定

No18489 (れい さん) に返信
> って、10個で10%?
> あれ?

んー
試してみましたが、再現できません。
数えてみましたが、10ピクセルありました。

また、

tableLayoutPanel.Height = 109;
tableLayoutPanel.Width = 109;

の場合は割り切れないため、
右端、下端のセルが9ピクセル大きくなります。
引用返信 編集キー/
■18496 / inTopicNo.4)  Re[3]: tableLayoutPanelの各セルのサイズ
□投稿者/ tanaka (54回)-(2008/05/14(Wed) 15:29:13)
No18491 (れい さん) に返信
> ■No18488 (tanaka さん) に返信
>>【例】
>>tableLayoutPanel.Height = 100;
>>tableLayoutPanel.Width = 100;
>>RowsCount = 10;
>>ColumnCount = 10;
>>それぞれ10%で設定
>
> ■No18489 (れい さん) に返信
>>って、10個で10%?
>>あれ?
>
> んー
> 試してみましたが、再現できません。
> 数えてみましたが、10ピクセルありました。
>
> また、
>
> tableLayoutPanel.Height = 109;
> tableLayoutPanel.Width = 109;
>
> の場合は割り切れないため、
> 右端、下端のセルが9ピクセル大きくなります。

各セルにはlabelを配置してDock=Fillにしています。
また絶対値で設定してみましたが今度は最後が小さくなりました。
tableLayoutPanelのサイズは割り切れる値です。
引用返信 編集キー/
■18498 / inTopicNo.5)  Re[4]: tableLayoutPanelの各セルのサイズ
□投稿者/ れい (531回)-(2008/05/14(Wed) 15:35:21)
No18496 (tanaka さん) に返信
>>tableLayoutPanel.Height = 109;
>>tableLayoutPanel.Width = 109;
>>
>>の場合は割り切れないため、
>>右端、下端のセルが9ピクセル大きくなります。
>
> 各セルにはlabelを配置してDock=Fillにしています。
> また絶対値で設定してみましたが今度は最後が小さくなりました。
> tableLayoutPanelのサイズは割り切れる値です。

Dock=FillでFill対象のクライアント領域のサイズが割り切れないなら当然大きくなるでしょう。
絶対値でも同じように左、上が優先になりますので、
右、下が小さくなったり大きくなったりするでしょう。

何も問題はないですね。
引用返信 編集キー/
■18499 / inTopicNo.6)  Re[1]: tableLayoutPanelの各セルのサイズ
□投稿者/ いしだ (116回)-(2008/05/14(Wed) 15:38:42)
2008/05/14(Wed) 16:29:47 編集(投稿者)
2008/05/14(Wed) 15:55:26 編集(投稿者)

CellBorderStyleに何か指定するとその分の幅が付加されて
サイズが違ってくるのではないでしょうか。
たとえばSingleを指定した場合は、幅高さを111に指定すれ
ばぴったりのような気がします。

こんな方法でいいかどうかはわかりません。。。

[編集]
> サイズが違ってしまいます。(最後の列と行が他より大きい)
最後の列行が他より大きいという事で、このケースは当ては
まらなさそうですね。。。

引用返信 編集キー/
■18561 / inTopicNo.7)  Re[2]: tableLayoutPanelの各セルのサイズ
□投稿者/ tanaka (59回)-(2008/05/14(Wed) 21:17:03)
No18499 (いしだ さん) に返信
> 2008/05/14(Wed) 16:29:47 編集(投稿者)
> 2008/05/14(Wed) 15:55:26 編集(投稿者)
>
> CellBorderStyleに何か指定するとその分の幅が付加されて
> サイズが違ってくるのではないでしょうか。
> たとえばSingleを指定した場合は、幅高さを111に指定すれ
> ばぴったりのような気がします。
>
> こんな方法でいいかどうかはわかりません。。。
>
> [編集]
>>サイズが違ってしまいます。(最後の列と行が他より大きい)
> 最後の列行が他より大きいという事で、このケースは当ては
> まらなさそうですね。。。
>
とりあえず参考に地道に編集してどうにか出来ました。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -