【问题标题】:ListView displaying items but not groupsListView 显示项目但不显示组
【发布时间】:2016-02-19 19:55:30
【问题描述】:

我正在创建一个简单的模式对话框,其中包含一个列表视图。当我将项目添加为组的一部分时,项目会显示,但组标题不会。我一直在尝试在构造函数中使用一些虚拟对象。这是代码:

    //Initialize and create columns
    public ConfirmDialog(List<ContentFileInfo> files, List<ContentFileInfo> folders, ManagerMain manager)
    {
        _myFiles = files;
        _myFolders = folders;
        _manager = manager;

        InitializeComponent();
        //cbFilter.SelectedIndex = 0;
        CreateColumns();

        lstChanges.BeginUpdate();
        lstChanges.ShowGroups = true;

        ListViewGroup test = new ListViewGroup("TestGroup");

        ListViewItem item = new ListViewItem {Group = test};
        ListViewItem item2 = new ListViewItem();
        ListViewItem.ListViewSubItem sub = new ListViewItem.ListViewSubItem();
        ListViewItem.ListViewSubItem sub2 = new ListViewItem.ListViewSubItem();

        sub.Text = "Item descrip.";
        sub2.Text = "Item2 descrip.";

        item.Text = "Item name.";
        item.SubItems.Add(sub);

        item2.Text = "Item2 name.";
        item2.SubItems.Add(sub2);

        lstChanges.Items.Add(item);
        lstChanges.Groups.Add(test);
        lstChanges.Items.Add(item2);

        lstChanges.EndUpdate();

        //GetAllFolders();
        //FillListByGroup();
        //NotifyOfUnchangedFiles();
    }

这是会话期间出现的对话框:

根据调试器,一切都正确添加:

如果有帮助,这里是调用我的对话框的代码:

    //Event: Prompt user to approve change request
    private void btnPushChanges_Clicked(object sender, EventArgs e)
    {
        ConfirmDialog dialog = new ConfirmDialog(_cmprController.SelectedFiles, _cmprController.SelectedFolders, this);
        try
        {
            dialog.ShowDialog();
        }
        catch
        {
        }
    }

【问题讨论】:

  • 您的应用程序似乎禁用了 VisualStyles。您可以在应用程序类的 main 方法中使用 Application.EnableVisualStyles() 启用它。
  • 这并没有为我解决。

标签: c# .net winforms visual-studio-2015


【解决方案1】:

在您的应用程序开始时调用Application.EnableVisualStyles() 应该有助于解决此问题。阅读此https://msdn.microsoft.com/en-us/library/system.windows.forms.listview.showgroups(v=vs.110).aspx的备注部分

【讨论】:

  • 啊。当我读到它时,我认为只需要在那些版本的 Windows 上调用它。我不知道我为什么这么想。谢谢!
【解决方案2】:

ListView Groups 仅在为您的应用程序启用视觉样式并且似乎在您的应用程序中禁用视觉样式时显示。
要在列表视图中显示组, 您的应用程序应调用 Application.EnableVisualStyles 方法来启用应用程序的视觉样式。
通常,EnableVisualStylesProgram 类中Main 方法的第一行。

【讨论】:

    猜你喜欢
    • 2018-06-10
    • 1970-01-01
    • 2021-05-13
    • 2017-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多