Listview作为日志文件

时间:2013-03-07 06:41:10

标签: c# listview

您好。我有一个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处执行此操作,它可以添加包含一些数据的行?

3 个答案:

答案 0 :(得分: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);
    }

UI

enter image description here

答案 1 :(得分: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);
        }

答案 2 :(得分:1)

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

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

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

现在您可以将新数据行添加到数据表中,它们将自动显示在datagridview中。好处是,你必须定义一次表格布局,设计师会为你生成一个自定义数据流类型,你可以使用它。

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

诚恳, ceth