在 C# win 表单中工作,我试图创建一个项目列表,其中每个项目都包含一个图标和特定布局中的 3 个标签。
这是一个例子
用户应该能够选择单行,就像在普通的 ListView 中一样。
我的第一次尝试是在用户控件中创建图标和标签,然后将用户控件放在垂直布局的 FlowLayoutPanel 中(这将创建一个列表)。 问题是选择。由于点击事件被用户控件捕获,因此没有简单的方法让列表中的其他用户控件知道该控件已被选中,如果它们当前已被选中,则现在应该取消选中它们。 (我希望这是有道理的……)
我还尝试使用我在此处找到的一些开源自定义 Listview:http://www.codeproject.com/KB/list/aa_listview.aspx 但它太麻烦了。
我还考虑过创建一个自定义控件,它将继承自 Listview 并在列表中呈现我的用户控件,但我也读到有人试图这样做并遇到了很多困难。
我很高兴听到您的任何建议。
谢谢!
最佳答案
您可能想要尝试的是拥有两个用户控件。您似乎已经拥有的一个控件,即图标和标签。这将是您无法在程序集外部实例化的内部控件。第二个用户控件将只是某种容器(您可以通过实际使用用户控件或从面板继承或其他任何方式来实现,这并不重要)。这将仅用作单个项目的集合,并将管理项目的选择和取消选择。
基本上,每个用户控件都会引发点击事件,您的容器用户控件将连接到该事件。然后它会知道选择哪个,取消选择哪个。
希望这是有道理的!
关于c# - 可选列表中的用户控件 - 最好的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/348291/