3

C# win フォームで作業して、特定のレイアウトで各アイテムがアイコンと 3 つのラベルで構成されているアイテムのリストを作成しようとしています。

これがそのイラストです

http://hosting04.imagecross.com/image-hosting-13/3535help.jpg

ユーザーは、通常のリストビューと同様に、単一の行を選択できる必要があります。

私の最初の試みは、ユーザー コントロールでアイコンとラベルを作成し、次にそのユーザー コントロールを垂直レイアウト (リストを作成する) の FlowLayoutPanel に配置することでした。問題は選択でした。クリック イベントはユーザー コントロールによってキャプチャされたため、リスト内の他のユーザー コントロールに、そのコントロールが選択されていることを知らせる簡単な方法がありませんでした。現在選択されている場合は、選択を解除する必要があります。(これが理にかなっているといいのですが...)

ここで見つけたオープン ソースのカスタム Listview も使用してみました: http://www.codeproject.com/KB/list/aa_listview.aspx ですが、バグが多すぎます。

また、Listview から継承してユーザー コントロールをリストにレンダリングするカスタム コントロールを作成することも考えましたが、それを試みて多くの困難に陥った人についても読みました。

ご提案がありましたら、お聞かせいただければ幸いです。

ありがとう!

4

1 に答える 1

2

試してみたいことは、2 つのユーザー コントロールを用意することです。アイコンとラベルである、既に持っていると思われる 1 つのコントロール。これは、アセンブリの外部でインスタンス化できない内部コントロールになります。2 番目のユーザー コントロールは、一種のコンテナーになります (これは、実際にユーザー コントロールを使用するか、パネルから継承するか、何でも構いません)。これは単に個々のアイテムのコレクションとして機能し、アイテムの選択と選択解除を管理します。

基本的に、各ユーザー コントロールはクリック イベントを発生させ、コンテナー ユーザー コントロールはこれに接続します。次に、どれを選択し、どれを選択解除するかを認識します。

それが理にかなっていることを願っています!

于 2008-12-08T01:26:22.307 に答える