1

你好。我有一个 Windows 窗体应用程序。在我做某事之后,我想要的是将更新放在Listview. 更像是一个日志文件。这是我的代码:

private void Form1_Load(object sender, EventArgs e)
{
    listView1.View = View.Details;
    listView1.GridLines = true;
    listView1.FullRowSelect = true;

    //Add column header
    listView1.Columns.Add("Import Status", 100);
    listView1.Columns.Add("Price", 70);
    listView1.Columns.Add("Date", 70);

    //Add items in the listview
    string[] arr = new string[4];
    ListViewItem itm;

    //Add first item
    arr[0] = "product_1";
    arr[1] = "100";
    arr[2] = "10";
    itm = new ListViewItem(arr);
    listView1.Items.Add(itm);

    //Add second item
    arr[0] = "product_2";
    arr[1] = "200";
    arr[2] = "20";
    itm = new ListViewItem(arr);
    listView1.Items.Add(itm);
}

如何在ListView没有“硬编码”的情况下将项目添加到它们?有什么建议么?我怎么能做到这一点Button.Click,它可以添加包含一些数据的行?

4

3 回答 3

2
   How can I Add items to the ListView without 'hardcoding' them? 

代码

    private void Form1_Load(object sender, EventArgs e)
    {
        listView1.View = View.Details;
        listView1.GridLines = true;
        listView1.FullRowSelect = true;
        listView1.Columns.Add("Import Status");
        listView1.Columns.Add("Price");
        listView1.Columns.Add("Date");      
    }

    private void btnAdd_Click(object sender, EventArgs e)
    {
        ListViewItem LVI = new ListViewItem(txtstatus.Text);
        LVI.SubItems.Add(txtPrice.Text);
        LVI.SubItems.Add(txtDate.Text);
        listView1.Items.Add(LVI);
    }

用户界面

在此处输入图像描述

于 2013-03-07T07:17:40.423 回答
1

将这两行全球化,以允许您访问类的每个方法:

string[] arr = new string[4];
ListViewItem itm;

现在创建一个button click事件并将您的代码放入其中:

private void button1_Click(object sender, EventArgs e)
        {
            arr[0] = "product_2"; //you can get these values from textboxes if you are taking input from user
            arr[1] = "200";
            arr[2] = "20";
            itm = new ListViewItem(arr);
            listView1.Items.Add(itm);
        }
于 2013-03-07T06:56:04.660 回答
1

您好 :) 您可以使用 datagridview 而不是 listview 控件。

您所要做的就是定义自己的数据集或将数据集控件添加到项目中。你只需要将你的三列添加到一个新的数据表中。然后:

  • 将该数据集添加到您的表单中,它将出现在您的表单代码中
  • 将datagridview的数据源设置为添加的数据集

现在您可以将新数据行添加到数据表中,它们将自动出现在 datagridview 中。好消息是,您必须定义一次表格布局,设计器将为您生成一个自定义数据行类型,您可以使用什么。

我的经验告诉我,这种方式比使用 listview 更舒服。主要的是,如果你想在其他上下文中处理数据表,你可以对数据表进行 LINQ。我之前使用过listview,但是由于datagridview与数据集结合使用,一切都更好;)

真诚的,ceth

于 2013-03-07T07:01:32.690 回答