如何在listView中创建选项卡而不是在设计器中但在运行时代码中?

时间:2016-02-16 17:51:36

标签: c# .net winforms

在构造函数中:

lvnf = new ListViewNF();
lvnf.Location = new Point(250, 18);
lvnf.Size = new Size(474, 168);

this.Controls.Add(lvnf);

设置尺寸后,我想添加以下列:来自主题日期

如何设置listView控件(lvnf)以显示添加的项目列表? 这就是我在progressChanged事件中添加项目的方式:

private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            pbt.Value = e.ProgressPercentage;
            pbt.Text = e.ProgressPercentage.ToString() + "%";
            pbt.Invalidate();
            label8.Text = e.UserState.ToString();
            label8.Visible = true;
            lvnf.Items.Add(new ListViewItem(new string[]
            {
              allMessages[countMsg].Headers.From.ToString(),         //From Column
              allMessages[countMsg].Headers.Subject,                 //Subject Column
              allMessages[countMsg].Headers.DateSent.ToString()      //Date Column
            }));


            countMsg += 1;
        }

2 个答案:

答案 0 :(得分:2)

您可以使用ListView获取带标题的列。其中一个属性是View,我认为你将它设置为Details。然后添加列

listView1.Columns.Add("Column1",100); // 100 is the column width
listView1.Columns.Add("Column2",200);
每列的

等等。

添加项目

listView1.Items.Add("First item");

然后为第i个添加子项(在列中)

listView1.Items[i].SubItems.Add("Subitem1");

对于第一项,这将是

listView1.Items[0].SubItems.Add("Subitem1");

希望这会有所帮助。

答案 1 :(得分:0)

您可以通过将列添加到ListView属性

来将列添加到Columns
lvnf.Columns.Add("From");
lvnf.Columns.Add("Subject");
lvnf.Columns.Add("Date");

并以列表形式显示项目:

lvnf.View = View.List;

但是如果您使用此视图,则会隐藏列标题。