4

C#(WinForm)のフォームがあります。次のようになります。


(ロゴ)

コードを介して追加するラベル用の空白スペース(このスペースに10個のラベルを収めることができます)

(閉じるボタン)


空白スペースには約10個のラベルを入れることができます。

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

ラベルを作成している場所で、フォームの空白部分だけをスクロール可能にするにはどうすればよいですか?リストボックスは使いたくない。

ありがとう。

4

4 に答える 4

4

TableLayoutPanelaまたは aをコントロールFlowLayoutPanelのコンテナとして使用してみてください。Label

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

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

どちらも、実行時にラベル コントロールを追加し、適切なサイズにすることができます。レイアウト パネルをスクロール可能にするには、そのAutoScrollプロパティを「True」に設定してください。

于 2010-12-13T10:54:12.640 に答える
2

たぶん、true にFlowLayoutPanel設定され、 に設定されています。AutoScrollFlowDirectionTopDown

于 2010-12-13T10:54:06.697 に答える
1

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

.NET スクロールバーを理解する

于 2010-12-13T10:53:23.477 に答える
1

FlowLayoutPanelを使用できます。

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

于 2010-12-13T10:55:29.347 に答える