
C# のテキストボックスデザインについて
複数のテキストボックスを結合して並べたいのですが、フォームをスケーリングしている為、
解像度によって、テキストボックスの行間が変わり、デザインが変わってしまいます。
以下サイトや添付ファイルの様に、複数のテキストボックスの行間をひっつけて固定させたいと思っています。
http://www.grapecity.com/japan/special/multirow/
現在(スケーリングの際にAとBの間がまちまちになってしまう)
――――――――――――――――
テキストボックスA
――――――――――――――――
――――――――――――――――
テキストボックスB
――――――――――――――――
やりたい事
――――――――――――――――
テキストボックスA
――――――――――――――――
テキストボックスB
――――――――――――――――
どなたかご存じの方がおられましたら、アドバイスよろしくお願いいたします。
参考になるサイト等もあれば、併せてご教授願います。m(__)m

No.1ベストアンサー
- 回答日時:
想定されているのは、レイアウトやフォントサイズが変わったとき、動的にControl間を隣接するように調整するということですよね。
プログラムで調整するなら、ロード時ではなくてリサイズイベントで行うようにしてください。
質問番号:6161003 http://oshiete.goo.ne.jp/qa/6161003.html と同じ質問ですよね。
一般的に、Formサイズを基準にして個々のコントロールの配置やサイズを計算すればいいのですが、混乱されているようですね。
この場合、TextBox Controlを基準にします。なぜなら、TextBoxは融通がきかなくて高さはフォントサイズに自動調整されます。強引に高さを変更しても元に戻ってしまうのです。
したがって、TextBoxを基準に隣接するように配置し、Labelの高さはTextBoxの高さに調整します。
---------------------------------------------------------------------------
別のアプローチもご紹介します。
標準Controlを使って、レイアウトを動的に配置する方法(一例)です。
1.TableLayoutPanelコントロールをベースのコンテナとします。
TableLayoutPanel.Dock=Fill この場合、Form全体に張り付きます。
列=2,行=3にして、それぞれの比率は均等あるいは適当な設定をします。
CellBorderStyleプロパティをSingleにすると枠線を表示できます。
2.Label ControlとTextBox ControlをTableLayoutPanelのセルに当てはめます。
3.Label ControlのDockプロパティを同様にFillに設定します。
細部のプロパティ設定を行います。
4.TextBox ControlのAnchorプロパティを”Left, Right”に変更します。(中央に配置)
※TableLayoutPanelの詳細については、MSDNなどを参照してください。
※TableLayoutPanelをForm内の他のコンテナにDockingするとそのコンテナサイズ内で自動調整されます。
TableLayoutPanelのセルには一つのControlしか貼り付けることができません。その場合は、多少面倒ですがTableLayoutPanelを入れ子にすることで結構複雑なレイアウトにも対応できます。
●TableLayoutPanelをうまく活用すると、面倒なレイアウト調整プログラムを極力回避することができます。
補足
角丸の枠線は、標準Controlではできませんので対応するとすれば、市販コントロールを使うか独自に描画するコントロールを作成するしかありません。(解説は省略)
[プログラミングの家庭教師]

いろいろアドバイスありがとうございます。
TableLayoutPanelは一度試したのですが、入れ子にするのは考えていませんでした。
一度試してみます。
>>角丸の枠線の、標独自に描画するコントロールを作成。
の方法が出来れば知りたいです。
もし、お時間があれば、教えていただけないでしょうか?
この辺りの情報が載っているサイトを、発見できず、苦しんでいます。
ぜひ、教えてほしいです。
よろしくお願いいたします。m(__)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel VBA 複数選択したリストボックスからテキストボックスに転記したいです。 3 2023/03/19 18:31
- Access(アクセス) アクセス 意図せずサブプロシージャを移動してしまうのを止めたい 1 2022/09/02 09:19
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- Visual Basic(VBA) テキストボックス1の値に対するテキストボックス2に表示する値 1 2022/04/05 14:35
- その他(パソコン・スマホ・電化製品) ワードでテキストボックス内の文字を連動させない方法 2 2023/02/09 16:56
- Visual Basic(VBA) ExcelVBAでユーザーフォームでテキストボックスなどからセルに連続して入力するコーディングの際の 2 2022/06/29 22:51
- Access(アクセス) capeofdragonと申します。 Access2016を使っております。 あるフォームがあり、テ 2 2022/09/09 13:18
- Visual Basic(VBA) テキストボックスの値を該当セルに登録する方法 2 2022/11/23 18:47
- Visual Basic(VBA) ユーザーフォームで銀行に対応した支店コードの入力ができません Sheet1のA列に銀行名、B列に銀行 5 2022/07/28 17:50
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelテキストボックスのTab順...
-
ACCESS VBA でのテキスト表示
-
デザインモードを解除すると消...
-
ユーザーフォームを表示中にシ...
-
VBA(エクセル)で自動的にボタン...
-
worksheetFunctionクラスのVloo...
-
VBAがブレークモードになっ...
-
ユーザーフォームに別シートか...
-
VBA シートのボタン名を変更し...
-
どう増強すべきか
-
VBAで多数のプログラムを一つの...
-
ExcelVBAのユーザーフォームの...
-
「Columns("A:C")」の列文字を...
-
実行時エラー 438になった時の...
-
エクセルのVBAの標準モジュール...
-
【C#/Java?】try-catchでcatch...
-
Excel VBA セルの名前があるか...
-
パソコンへの「Dropbox...
-
キンドルでの購入が親にバレな...
-
chr関数の呼び出しで「プロ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックス(VBA)でEnter...
-
Wordテキストコントロールが未...
-
エクセルの画像にツールチップ...
-
ユーザーフォームに日付を表示...
-
C# TEXTが空白であるLABELは何...
-
エクセル入力規制リスト行数
-
MSFlexGrid
-
コンボボックスの高さを変更し...
-
ACCESS2010 ActiveXコントロー...
-
Enabled=Falseのテキストボック...
-
VB6でLabelの最前面にText Box...
-
ADOのCursorLocationプロパティ
-
DataGridViewで行の展開みたい...
-
checkbox付きListViewで デフ...
-
VB2005 コードでのコントロー...
-
チェックボックスの文字色の変え方
-
VB6でPNGファイルを扱うには?
-
PictureBoxの背景色変更(VB.NET)
-
VB.NETで縦書表示をしたいので...
-
MFCでbitmapを背景にしてstatic...
おすすめ情報