C# 如何隐藏ListView列标题?

C# 如何隐藏ListView列标题?,c#,winforms,listview,listbox,C#,Winforms,Listview,Listbox,我正在努力找出用于包含表单中预定义作业列表的正确控件。我目前在预定义作业名称组中有一个ListBoxControl,它列出了船用维修车间的所有预定义作业(即换油、调整等)。然后,根据在我的列表框中选择的项目(即作业名称),我需要显示与该作业对应的项目。例如,如果所选的工作是换油,我需要显示4夸脱机油、1个机油滤清器、人工等…等等 目前,当我加载表单数据时,我有一个DAO,它使用LINQ to SQL从数据库检索我的所有作业。然后我迭代结果并将作业名称放入列表框。我遇到的问题是,ListBox项没

我正在努力找出用于包含表单中预定义作业列表的正确控件。我目前在预定义作业名称组中有一个ListBoxControl,它列出了船用维修车间的所有预定义作业(即换油、调整等)。然后,根据在我的列表框中选择的项目(即作业名称),我需要显示与该作业对应的项目。例如,如果所选的工作是换油,我需要显示4夸脱机油、1个机油滤清器、人工等…等等

目前,当我加载表单数据时,我有一个DAO,它使用LINQ to SQL从数据库检索我的所有作业。然后我迭代结果并将作业名称放入列表框。我遇到的问题是,ListBox项没有像ListView项那样的标记。因此,每次用户在列表框中选择另一项时,我都必须执行另一个LINQ查询,以便再次从数据库中获取作业,以便显示其相应的项。如果我可以使用ListView并隐藏列标题,我就可以在标记上设置整个作业,这样每当用户选择一个新项目时,我就可以访问详细信息,而无需再次调用数据库。有没有一种方法可以隐藏ListView的列标题而不隐藏整个列


您可以将
列表视图的
标题样式
成员设置为

listView1.HeaderStyle=System.Windows.Forms.ColumnHeaderStyle.None

签出ListView属性。它有以下选项:

  • 没有
  • 不可舔
  • 可点击
  • 来自MSDN:


    HeaderStyle属性允许您指定列标题是否可见,或者,如果它们可见,它们是否将用作可单击按钮。如果HeaderStyle属性设置为ColumnHeaderStyle.None,则不会显示列标题,尽管ListView控件的项和子项仍然排列在列中

    ,您也可以创建简单的对象,如
    ListItem
    ,它有两个权限:
    Text
    (字符串)和
    Tag
    (对象)。然后实现ListItem.ToString(),您也可以在
    列表框中使用它们


    您还可以签出组件,该组件是免费的,允许在“详细信息”视图中显示项目而不显示列。与ListBox和ListView相比,它的优点是具有本机外观和许多附加功能。

    我发现,如果您知道您没有显示标题,那么最好将HeaderStyle属性设置为None,正如Rajesh上面提到的那样


    在.CS中设置时,当屏幕最初加载时,将显示标题,直到屏幕完全呈现

    简单的方法是使用
    ColumnWidthChanging
    事件

    private void listViewExtended1_ColumnWidthChanging(object sender, ColumnWidthChangingEventArgs e)
    {
          if (e.ColumnIndex == 0)
          {
               e.Cancel = true;
               e.NewWidth = listViewExtended1.Columns[e.ColumnIndex].Width;
          }
    }
    

    如果要显示表格数据,我会使用网格,我相信在网格视图中可以隐藏标题错误。您的
    视图
    模式设置为
    详细信息
    。为什么不将其设置为
    列表