【问题标题】:How To Hide ListView ColumnHeader?如何隐藏 ListView 列标题?
【发布时间】:2012-02-17 20:09:59
【问题描述】:

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

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

【问题讨论】:

  • 如果应该显示表格数据,我会使用网格,我相信在 GridView 中您可以隐藏 HeaderRow。
  • 您的View 模式设置为Details。为什么不将其设置为List

标签: c# winforms listview listbox


【解决方案1】:

您可以将ListViewHeaderStyle 成员设置为None

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

【讨论】:

    【解决方案2】:

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

    1. 不可点击
    2. 可点击

    来自 MSDN:

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

    【讨论】:

      【解决方案3】:

      您还可以创建像ListItem 这样的简单对象,它有两个属性:Text(字符串)和Tag(对象)。然后实现 ListItem.ToString() ,你也可以在ListBox 中使用这些。

      您还可以查看Better ListView Express 组件,该组件是免费的,允许在详细信息 视图中显示不带列的项目。与 ListBox 和 ListView 相比的优势在于其原生外观和许多额外功能。

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          【解决方案5】:

          简单的方法是使用ColumnWidthChanging 事件

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

          【讨论】:

            猜你喜欢
            • 2010-10-12
            • 1970-01-01
            • 2019-06-10
            • 2014-08-24
            • 1970-01-01
            • 1970-01-01
            • 2010-11-07
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多