2016-11-01 2 views
-1

私は2つの項目を保持するWinFormsパネルを持っています。ラベル。WinFormsのパネル内でラベルコントロールを異なる方法で調整する

ラベルを水平に並べる必要があります。ラベル1をパネルの中央に配置する必要があり、ラベル2をパネルの右側に配置する必要があるとします。整列はサイズ変更時に保持されなければなりません。

どのパネルを使用しますか?パネル? FlowLayoutPanel?他に何か? 上記の配置を達成するために、パネル/ラベルのプロパティをどのように設定する必要がありますか?

+1

リサイズ前に画像を共有し、リサイズ後に画像を共有する方が良いです。たぶん、Anchorを使ったいくつかのプロパティ設定です。多分、イベント処理コードが必要です。 –

+0

ラベルは、パネルの助けを必要とせずに、単独でそれを行うことができます。 Anchorプロパティを使用します。 Top + Rightを使用して、右揃えにします。 Centerはもう少し作業です:AutoSize = False、TextAlign = TopCenter、ラベルを中央に置く、Anchor = Left + Top + Rightを使用します。 –

+0

@ハンス・パッセンジャー:それは私が必要とするようにほぼ動作します。あなたの指示 "中央にラベルを置く"は、サイズ変更が幅を増やすことを意味する場合にのみ十分です。幅を狭くする作業の解決策は、ラベルの幅をラベルの幅を囲むパネルの端まで伸ばす(そしてラベル2の右側を伸ばす) "と置き換える必要があります。後者の場合、label2を隠すことを避けるためにzオーダーを気にする必要があります。 – Feri

答えて

0

TabelLayoutPanelに2つの列を使用します。左のラベルアンカーを上と下に、ラベルのテキストの中心にラベルを設定します。 ラベル2のアンカーRight、Text Right Center。

TabelLayoutPanel(フォーム上の唯一のコントロールの場合)を塗りつぶしするか、展開したい辺にアンカーを設定します。

ラベルの位置合わせは、親コンテナ内のアンカー位置とテキストの位置合わせで制御できます。

+0

編集:ありがとうございますが、これは、Label1をTableLayoutPanelの列1の中心に揃え、TableLayoutPanel全体の中央に配置しません。 – Feri

関連する問題