我正在努力找出正确的控件,用于包含表单中的预定义作业列表。我目前在预定义作业名称组中有一个ListBoxControl,它列出了海洋服务商店的所有预定义作业(即换油、调优等)。然后,根据在ListBox中选择的项目(即作业名称),我需要显示与该作业对应的项目。例如,如果更换机油是选定的作业,我需要显示4夸脱机油,1个机油过滤器,人工,etc...and等等。
目前,当我加载表单数据时,我有一个DAO,它使用LINQ to SQL从数据库检索我的所有作业。然后,我迭代结果并将作业名称放入ListBox。我遇到的问题是,像ListView项目一样,ListBox项目没有标记。因此,每次用户在ListBox中选择另一个项目时,我必须执行另一个LINQ查询,以便再次从数据库中获取作业,以便能够显示其对应的项目。如果我可以使用ListView并隐藏列标题,我就可以在标记上设置整个作业,这样每次用户选择一个新项目时,我就可以访问详细信息,而不必再次调用数据库。有没有一种方法可以隐藏ListView的列标题而不隐藏整个列?

发布于 2012-01-24 23:19:35
您可以将ListView的HeaderStyle成员设置为None。
listView1.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
发布于 2012-01-24 23:32:01
签出ListView HeaderStyle属性。它有以下选项:
来自MSDN的:
HeaderStyle属性允许您指定列标题是否可见,如果列标题可见,则指定它们是否用作可单击的按钮。如果HeaderStyle属性设置为ColumnHeaderStyle.None,则尽管ListView控件的项和子项仍按列排列,但不显示列标题
发布于 2012-02-01 22:59:02
您还可以创建像ListItem这样的简单对象,它有两个属性:Text (string)和Tag ( object )。然后实现ListItem.ToString(),您也可以在ListBox中使用它们。
您还可以查看Better ListView Express组件,它是免费的,允许在没有列的详细视图中显示项目。与ListBox和ListView相比,它的优势在于原生外观和许多额外功能。
https://stackoverflow.com/questions/8989214
复制相似问题