【问题标题】:user control in a selectable list - best way to do it?可选择列表中的用户控件 - 最好的方法是什么?
【发布时间】:2008-12-07 23:18:05
【问题描述】:

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

这是一个例子

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

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

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

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

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

谢谢!

【问题讨论】:

    标签: c# winforms listview user-controls


    【解决方案1】:

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

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

    希望这是有道理的!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多