2010-12-13 3 views
4

私はC#(WinForm)でフォームを持っています。C#フォームに一連のラベルを追加し、フォームを垂直方向にスクロールするにはどうすればよいですか?


(ロゴ)私はコードを を追加ラベルの

空白(私は この空間に10枚のラベルを収めることができる)

(閉じるボタン):それはこのようになります


空白ができホ約10ラベル。

ラベルを20個追加したい場合は、このフォームをスクロール可能にする方法が困惑していますか?コードを介して20個のラベルを追加すると、11番目のラベルは閉じるボタンと重なり、12番目のラベルはフォームの最後に表示されます。

フォームの空白部分だけをスクロール可能にしてラベルを作成する方法を教えてください。私はリストボックスを使いたくない。

ありがとうございました。

答えて

1

すべてのコントロールをパネル内に配置し、スクロールバーコントロールを使用します。たぶん

Understand .NET Scrollbars

+1

WinFormsが提供するほとんどのコンテナコントロールに「AutoScroll」プロパティが存在することを考えれば、これはおそらく最も難しいことではありません。 –

+0

自動スクロールでは、ロゴと閉じるボタンもスクロールします。どのような標準でも良いUIデザインではありません。 –

+2

パネルのロゴと閉じるボタン*を内側に置いた場合のみ。それらを外側に置いて、パネルコントロールをそれらの間にドッキングし、ラベルコントロールをパネルに追加するだけです。 –

2

trueにFlowLayoutPanelAutoScrollとセットとTopDownからFlowDirectionセット。

4

Labelコントロールのコンテナには、TableLayoutPanelまたはFlowLayoutPanelのいずれかを使用してください。

TableLayoutPanelは、ラベルの位置をより細かく制御できます。 HTMLテーブルと同様に、各コントロールの正確なセル位置を(行と列の座標を使用して)指定します。

対照的に、FlowLayoutPanelは、垂直または水平のレイアウト構成のいずれかでコンテンツの位置を自動的に処理します。配置は、コントロールを追加する順序によって決定され、最小限の騒ぎで動的なレイアウトを実現できます。

実行時にラベルコントロールを追加したり、サイズ自体を適切に追加することができます。レイアウトパネルをスクロール可能にするには、AutoScrollプロパティが "True"に設定されていることを確認してください。

1

FlowLayoutPanelを使用できます。

必要な数のラベルを追加し、FlowLayoutPanelでAutoScrollを有効にします。

関連する問題