只有一列的ListView在两列中显示其项

时间:2019-05-21 12:30:11

标签: c# listview

我有一列四个值(取决于用户计算机上连接的屏幕数)。我正在尝试使用ListView,因为我找到了一个示例,可以将不可用的屏幕显示为灰色。

但是,四个项目的列表显示在这样的两列中:

屏幕1屏幕3

屏幕2屏幕4

我尝试更改列和控件的宽度,但没有成功。

为什么?

我当时想第一列可能是标题列,因此尝试添加两列并将第一列的宽度设置为零。但还是一样。

            lvScreens.Columns.Add("Col", 0, HorizontalAlignment.Center);
            lvScreens.Columns[0].Width = lvScreens.Width - 4;
            lvScreens.FullRowSelect = true;
            for (int i = 0; i < 4; i++)  // I'm limiting the LV to 4 rows
            {
                ListViewItem lvi = new ListViewItem("Screen " + (i + 1).ToString());
                lvScreens.Items.Add(lvi);
                if (i < Screen.AllScreens.Count())
                {
                    lvScreens.Items[i].ForeColor = SystemColors.ControlText;
                    lvScreens.Items[i].Selected = true;
                }
                else
                {
                    lvScreens.Items[i].ForeColor = SystemColors.GrayText;
                    lvScreens.Items[i].Selected = false;
                }
            }

1 个答案:

答案 0 :(得分:0)

在Winforms中,

ListView控件是wrapper之上的winapi listview control。该控件旨在用于Windows文件浏览器,并可以在多个视图之间轻松切换:两个图标(大和小)视图,列表和详细信息。

似乎您当前在错误的视图中(不确定是哪一个,列出?)。

Screen 1 Screen 3

Screen 2 Screen 4

只需将ListView.View设置为Details模式,即可看到具有多个列标题的经典 ListView

[Col]
Screen 1
Screen 2
Screen 3
Screen 4