Listview Add Items not appearing C#



我正在开发一个小程序,作为a级计算课程的一部分,该课程旨在跟踪订单。它是使用Windows窗体用C#编写的。

我遇到了一个问题,我输入了新订单的所有信息,然后按OK,它应该会用信息更新ListView。我的ListView在Detail视图中有4列,但没有任何内容添加到ListView中。应该将项添加到ListView的代码部分正在执行,并且没有引发任何错误或导致程序崩溃,但没有添加任何内容。这很奇怪,因为我使用的方法与我在小原型模型中使用的方法完全相同,但由于某种原因,现在它不起作用了。

我在这里或互联网上发现的所有东西似乎都表明ListView的View模式有问题,我曾尝试修改此属性,但没有成功。

你知道为什么这段代码拒绝向ListView添加任何内容吗?

//Create an array to store the data to be added to the listbox
string[] orderDetails = { Convert.ToString(id + 1), rNameBox.Text, dateBox.Value.ToString(), orderBox.Text };
//DEBUGGING
Console.WriteLine(orderDetails[0]);
Console.WriteLine(orderDetails[1]);
Console.WriteLine(orderDetails[2]);
Console.WriteLine(orderDetails[3]);
//END DEBUGGING
//Add the order info to the ListView item on the main form
var listViewItem = new ListViewItem(orderDetails);
ths.listView1.Items.Add(listViewItem);

如果你需要更多信息,就说。如果这是错误的格式或其他什么的,我很抱歉,这是我第一次来这里。

您的问题是您的ListViewItem包含一个字符串数组,而它没有有用的显示方法。

你应该做的(有很多方法,但这里有一种)是创建一个类OrderDetail,它有一个Id、一个Name、一个Date等等

public override string ToString()
{
return this.Name;
}

创建OrderDetail的实例并设置其属性。创建ListViewItem,为其提供OrderDetail实例并添加到ListView中。对所需的任意数量的OrderDetail实例重复此操作。

干杯-

添加:工作代码:

int id = 12;
string rNameBoxText = "rName";
DateTime dateBoxValue = DateTime.Now;
string orderBoxText = "order";
string[] orderDetails = { Convert.ToString(id + 1), rNameBoxText, dateBoxValue.ToString(), orderBoxText };
//DEBUGGING
Console.WriteLine(orderDetails[0]);
Console.WriteLine(orderDetails[1]);
Console.WriteLine(orderDetails[2]);
Console.WriteLine(orderDetails[3]);
//END DEBUGGING
this.listView1.Columns.Clear();
this.listView1.Columns.Add("Id");
this.listView1.Columns.Add("rName");
this.listView1.Columns.Add("Date");
this.listView1.Columns.Add("Order");
this.listView1.View = View.Details;
//Add the order info to the ListView item on the main form
var listViewItem = new ListViewItem(orderDetails);
this.listView1.Items.Add(listViewItem);

最新更新