3

在 C# win 表单中工作时,我正在尝试创建一个项目列表,其中每个项目都包含特定布局中的一个图标和 3 个标签。

这是它的插图

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

用户应该能够选择一行,就像在普通的 Listview 中一样。

我的第一次尝试是在用户控件中创建图标和标签,然后将用户控件放在垂直布局的 FlowLayoutPanel 中(这将创建一个列表)。问题是选择。由于单击事件是由用户控件捕获的,因此没有简单的方法让列表中的其他用户控件知道该控件已被选中,并且如果它们当前被选中,那么它们现在应该被取消选中。(我希望这是有道理的...)

我还尝试使用我在这里找到的一些开源自定义 Listview:http: //www.codeproject.com/KB/list/aa_listview.aspx 但它太有问题了。

我还考虑过创建一个自定义控件,该控件将从 Listview 继承并在列表中呈现我的用户控件,但我也读到有人试图这样做并遇到了很多困难。

我很高兴听到您的任何建议。

谢谢!

4

1 回答 1

2

您可能想要尝试的是有两个用户控件。您似乎已经拥有一个控件,即图标和标签。这将是一个内部控件,您无法在程序集之外实例化。第二个用户控件将只是一个容器(您可以通过实际使用用户控件或从面板继承或其他方式来做到这一点,没关系)。这将只是作为单个项目的集合,它将管理项目的选择和取消选择。

基本上,每个用户控件都会引发单击事件,您的容器用户控件将连接到该事件。然后它将知道选择哪个,取消选择哪个。

希望这是有道理的!

于 2008-12-08T01:26:22.307 回答