2010-12-24 22 views
9

私は、複雑なコンテキスト、つまりカスタムコントロールのリストを持っていたいと思っています。 (目標は、写真、ステータスアイコン、テキスト、「開始チャットボタン」などのバディリストのようなものです)Windows.Formsのリストのコントロールを作成する

しかし、私はリストとして振る舞いが好きです。スクロールバー、複数の選択肢アイテムなど

私がListViewとListBoxを見ているとき、私はテキストとアイコンを追加できますが、任意のコントロールは追加できないことがわかります。私はこれがどのように行われているのが分からないのですか?

ListView/ListBox以外のものを使用する必要がありますか?

+2

なぜWinformsではなくWPFを試してみませんか? –

+1

@Dean Chalk:既存のアプリケーションに機能を追加しようとしています。 Windows.Formsはどれですか。 – leiflundgren

+1

WPFを「試してみる」ことは言うまでもありませんが、まだ経験がない場合は、急な学習曲線が必要になります。 –

答えて

4

the Data RepeaterというVisual Basic Power Packにはコントロールが埋め込まれています。

これにより、独自のコントロールをリピータのアイテムとなるデータコンテナに関連付けることができます。

これまでに一度使ったことがありますが、は完全にではないと信じていますが、一度頭を上げてしまえば、それはかなり役に立ちます。また、独自のコントロールを保存することもできます。

現在のところ、私がこれまでに見つけたWindowsフォームの任意の反復コントロールの考え方に最も近いものです。

3

これはWPFで作成するのはやや簡単です(Windowsフォームでは多くの作業が行われます)。WPFは、こうしたリッチUIコントロールを作成するように設計されています。残りのアプリケーションがWindowsフォームにある場合は、WPF control in Windows Formsをホストすることができます。

+1

また、WinFormsでは些細なことですが、データリピーターと呼ばれるVisual Basic Power Packで使用できるコントロールがあります。しかし、私はWinFormsで何も始まらないことは自明ではないことに同意します。 –

7

FlowLayoutPanelを使用してください。

myFlowLayoutPanel.AutoScroll = true; 
myFlowLayoutPanel.FlowDirection = FlowDirection.TopDown; 
myFlowLayoutPanel.WrapContents = false; // Vertical rather than horizontal scrolling 
foreach(Control myControl in myControls){ 
    myFlowLayoutPanel.Controls.Add(myControl); 
} 

コントロールが垂直に配置され、スクロールバーが含まれていることを確認してください。私はあなたの選択の必要性についてはわかりません。

+0

ありがとう、これは私が正確に必要なものです。 – Bertie92

関連する問題