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

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

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

Re[2]: テキストボックスを整列させる方法


(過去ログ 176 を表示中)

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

■101092 / inTopicNo.1)  テキストボックスを整列させる方法
  
□投稿者/ 河童 (31回)-(2023/01/06(Fri) 12:05:05)

分類:[C#] 

Windows 11 Home
VS2019 .NET Framework 4.8

デザイナー画面で複数のテキストボックスを整列させる方法を教えてください。
縦に3個、横に3個配置した時、
一番上で左端にあるテキストボックスを基準に重なりがなく整列させたいです。

配置「左揃え」を選択して試してみると、1箇所にテキストボックスが配置されます。

テキストボックスの重なりなく整列配置させるには、コードで処理するほかないでしょうか。

よろしくお願いします。

引用返信 編集キー/
■101093 / inTopicNo.2)  Re[1]: テキストボックスを整列させる方法
□投稿者/ WebSurfer (2601回)-(2023/01/06(Fri) 12:10:43)
No101092 (河童 さん) に返信

> デザイナー画面で複数のテキストボックスを整列させる方法を教えてください。

「テキストボックス」って何ですか? .NET Framework で TextBox というと、Windows Forms, WPF,
ASP.NET Web Forms 用などいろいろあって何のことだかあなたが書かないと分かりません。
引用返信 編集キー/
■101094 / inTopicNo.3)  Re[2]: テキストボックスを整列させる方法
□投稿者/ 河童 (32回)-(2023/01/06(Fri) 12:34:55)
No101093 (WebSurfer さん) に返信
> 「テキストボックス」って何ですか? .NET Framework で TextBox というと、Windows Forms, WPF,
> ASP.NET Web Forms 用などいろいろあって何のことだかあなたが書かないと分かりません。
申し訳ございません。
Windowsフォームアプリケーション(.Net Framework)でプロジェクトを作成しています。
引用返信 編集キー/
■101095 / inTopicNo.4)  Re[1]: テキストボックスを整列させる方法
□投稿者/ kiku (316回)-(2023/01/06(Fri) 13:06:36)
No101092 (河童 さん) に返信
> Windows 11 Home
> VS2019 .NET Framework 4.8
> デザイナー画面で複数のテキストボックスを整列させる方法を教えてください。
> 縦に3個、横に3個配置した時、
> 一番上で左端にあるテキストボックスを基準に重なりがなく整列させたいです。
> 配置「左揃え」を選択して試してみると、1箇所にテキストボックスが配置されます。
> テキストボックスの重なりなく整列配置させるには、コードで処理するほかないでしょうか。
> よろしくお願いします。

3個×3個なら、手動で調整しても早いと思いますが、
TableLayoutPanelコントロールを使ったらどうなんでしょう。
https://dobon.net/vb/dotnet/control/tlbeginning.html


引用返信 編集キー/
■101096 / inTopicNo.5)  Re[3]: テキストボックスを整列させる方法
□投稿者/ WebSurfer (2602回)-(2023/01/06(Fri) 13:49:41)
No101094 (河童 さん) に返信

> Windowsフォームアプリケーション(.Net Framework)でプロジェクトを作成しています。

TableLayoutPanel を使ってはいかがですか?

TableLayoutPanel クラス
https://learn.microsoft.com/ja-jp/dotnet/api/system.windows.forms.tablelayoutpanel?view=netframework-4.8

引用返信 編集キー/
■101097 / inTopicNo.6)  Re[1]: テキストボックスを整列させる方法
□投稿者/ 魔界の仮面弁士 (3522回)-(2023/01/06(Fri) 15:17:52)
2023/01/06(Fri) 15:48:41 編集(投稿者)

No101092 (河童 さん) に返信
> 縦に3個、横に3個配置した時、
> 一番上で左端にあるテキストボックスを基準に重なりがなく整列させたいです。
> 配置「左揃え」を選択して試してみると、1箇所にテキストボックスが配置されます。

同じサイズの textBox1〜9 を、3行3列に
 1 2 3
 4 5 6
 7 8 9
と配置するものと仮定してみます。


(1) まず、textBox1 を最初に選択します。これが基準座標となります。
(2) Ctrl を押しながら残りの TextBox 群もクリックしていくか、もしくは
 それらをマウスドラッグで囲って、残り 8 個の TextBox も選択状態にします。
 textBox1 のグラブだけが白抜き□で、それ以外のものが
 黒塗り■のグラブになっていることを確認しておいてください。
(3) 「同じサイズに揃える」をクリックします。(「幅を揃える」でも可)
 → textBox2〜9 の 幅(と高さ)が、基準となる textBox1 と同じになります。

(4) あらためて、textBox1 だけが選択された状態にします。
(5) Ctrl を押しながら、textBox2, textBox3 を追加選択します。
 textBox1 のグラブのみが白抜き□であることを確認しておいてください。
(6) ここで、「上揃え」をクリックします。
 → textBox2, textBox3 の Top 座標が、textBox1 の Top 座標と同じになります。
(7) textBox1,2,3 が選択された状態のまま、「左右の間隔を削除する」をクリックして
 左右ぴったり並ぶようにします。
(8) 必要に応じて、「左右の間隔を広くする」「左右の間隔を狭くする」を併用します。

(9) 同様に、textBox1 を最初に選択(□)して、textBox4 と textBox7 を追加選択(■)します。
(11) 「左揃え」を押して、Left 座標を textBox1 に揃えます。
(12) 「上下の間隔を(削除|広く|狭く)する」で上下の間隔を調整します。

(13) 上一段と左一列がの位置が決まったので、残り 4 つの TextBox は
 ドラッグで移動させれば青ライン(端座標)、赤紫ライン(ベースライン)が現れるので、
 比較的容易に揃えられると思います。行数・列数がもっと増えてきた場合には、
 これまでと同様に、基準コントロールに対して配置ボタンで揃えていくこともできます。

ただしこれは、固定サイズのフォームであることが前提です。

フォームのリサイズに合わせて、TextBox のサイズや位置を調整したい場合は
Anchor プロパティを設定したうえで、FlowLayoutPanel や TableLayoutPanel などの
コンテナーを併用するようにします。


> テキストボックスの重なりなく整列配置させるには、コードで処理するほかないでしょうか。
動的追加の場合、FlowLayoutPanel を使うという手もあります。
デザイン時には、FlowLayoutPanel のプロパティを
 AutoScroll = False
 FlowDirection = LeftToRight
 WrapContents = True
の状態にしておき、そこに 複数の textBox を並べていくというものです。。
(デザイン時に追加しても良いし、プログラムから .Controls.Add しても良い)

それらの textBox は、すべて同じサイズで FlowLayoutPanel の上に
貼るようにしておけば、縦横重なることなく、きれいに整列配置されるでしょう。
各コントロールは、パネルの幅に合わせて折り返されます。
AutoScroll を True にしておけば、コントロールの数がさらに増えても
スクロールで表示させることができます。

この時、各 textBox の隣り合う間隔は、各 textBox の Margin プロパティで
調整できます。また、パネルの Padding プロパティを 0 よりも
大きなサイズにすることもできます。


このほか、TableLayoutPanel というものもあります。
複雑なレイアウトにも対応できますが、リサイズやレンダリングへの
追従性能が比較的低いので、多用はお奨めしません。
TableLayoutPanel を使うべきかどうかのガイドラインが下記にあります。
https://learn.microsoft.com/ja-jp/dotnet/desktop/winforms/controls/best-practices-for-the-tablelayoutpanel-control?view=netframeworkdesktop-4.8
引用返信 編集キー/
■101102 / inTopicNo.7)  Re[2]: テキストボックスを整列させる方法
□投稿者/ 河童 (34回)-(2023/01/06(Fri) 18:28:40)
皆様、アドバイスをいただきまして、ありがとうございました。
魔界の仮面弁士 さんの方法で微調整しながら配置を変更することができました。

また機会があれば、TableLayoutPanelを使ってみます。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -