Как добавить несколько строк в listview
Всем Привет
У меня есть listview со следующими заголовками столбцов:
значение ProductName
КОЛ-ВО
TotalAmount
У меня есть кнопка AddToCart со следующим кодом:
{ ListViewItem lst = new ListViewItem(); lst.SubItems.Add(txtProductName.Text); lst.SubItems.Add(txtQTY.Text); lst.SubItems.Add(txtTotalAmount.Text); lst.SubItems.Add(txtPid.Text); lst.SubItems.Add(txtPrice.Text); RegWindow.Items.Add(lst); txtProductCode.Text = ""; txtProductName.Text = ""; txtQTY.Text = ""; txtPrice.Text = ""; txtPid.Text = ""; txtTotalAmount.Text = ""; return; }
Это заполняет listview правильной информацией, полученной из текстовых полей
Проблема в том, что приведенный выше код ничего не добавляет После ввода новых значений в текстовые поля
Что мне нужно, чтобы иметь 2 строки в listview после того, как AddToCart снова нажата с новыми значениями текстового поля
Это приложение c# winform
Что я уже пробовал:
У меня было похожее vb.net код который работал 100%
Я попытался скрыть VB-код в c#, но это не сработало
Я только недавно начал кодировать на языке Си#
Заранее спасибо
Ниже кода vb:
Try Dim temp As Integer temp = ListView1.Items.Count() If temp = 0 Then Dim i As Integer Dim lst As New ListViewItem(i) 'lst.SubItems.Add(txtProductCode.Text) 'lst.SubItems.Add(txtProductName.Text) 'lst.SubItems.Add(txtWeight.Text) 'lst.SubItems.Add(txtPrice.Text) 'lst.SubItems.Add(txtCartons.Text) 'lst.SubItems.Add(CInt(Val(txtAvailablePackets.Text) / Val(txtAvailableCartons.Text))) 'lst.SubItems.Add(txtPackets.Text) 'lst.SubItems.Add(txtTotalAmount.Text) lst.SubItems.Add(txtProductName.Text) lst.SubItems.Add(txtCartons.Text) lst.SubItems.Add(txtTotalAmount.Text) lst.SubItems.Add(txtPid.Text) lst.SubItems.Add(txtPrice.Text) ListView1.Items.Add(lst) i = i + 1 txtSubTotal.Text = subtot() txtProductCode.Text = "" txtProductName.Text = "" txtCartons.Text = "" 'txtWeight.Text = "" txtPrice.Text = "" 'txtAvailableCartons.Text = "" 'txtSaleID.Text = "" txtPid.Text = "" txtTotalAmount.Text = "" Exit Sub End If For j = 0 To temp - 1 If (ListView1.Items(j).SubItems(1).Text = txtProductName.Text) Then ListView1.Items(j).SubItems(1).Text = txtProductName.Text ListView1.Items(j).SubItems(2).Text = txtCartons.Text ListView1.Items(j).SubItems(3).Text = txtTotalAmount.Text ListView1.Items(j).SubItems(4).Text = txtPid.Text ListView1.Items(j).SubItems(5).Text = txtPrice.Text 'ListView1.Items(j).SubItems(5).Text = Val(ListView1.Items(j).SubItems(5).Text) + Val(txtCartons.Text) 'ListView1.Items(j).SubItems(6).Text = Val(txtAvailablePackets.Text) / Val(txtAvailableCartons.Text) 'ListView1.Items(j).SubItems(7).Text = Val(ListView1.Items(j).SubItems(7).Text) + Val(txtPackets.Text) 'ListView1.Items(j).SubItems(8).Text = Val(ListView1.Items(j).SubItems(8).Text) + Val(txtTotalAmount.Text) txtSubTotal.Text = subtot() txtProductCode.Text = "" txtProductName.Text = "" txtCartons.Text = "" txtWeight.Text = "" txtPrice.Text = "" txtAvailableCartons.Text = "" 'txtSaleID.Text = "" txtPid.Text = "" txtTotalAmount.Text = "" Exit Sub End If Next j Dim k As Integer Dim lst1 As New ListViewItem(k) 'lst1.SubItems.Add(txtProductCode.Text) lst1.SubItems.Add(txtProductName.Text) 'lst1.SubItems.Add(txtWeight.Text) lst1.SubItems.Add(txtCartons.Text) 'lst1.SubItems.Add(Val(txtAvailablePackets.Text) / Val(txtAvailableCartons.Text)) 'lst1.SubItems.Add(txtPackets.Text) lst1.SubItems.Add(txtTotalAmount.Text) lst1.SubItems.Add(txtPid.Text) lst1.SubItems.Add(txtPrice.Text) ListView1.Items.Add(lst1) k = k + 1 txtSubTotal.Text = subtot() txtProductCode.Text = "" txtProductName.Text = "" txtCartons.Text = "" txtWeight.Text = "" txtPrice.Text = "" txtAvailableCartons.Text = "" 'txtSaleID.Text = "" txtPid.Text = "" txtTotalAmount.Text = "" ProdCombo.Text = "" Catch ex As Exception MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try Below the converted code from vb to C#: try { int temp; temp = ListView1.Items.Count(); if (temp == 0) { int i; ListViewItem lst = new ListViewItem(i); //lst.SubItems.Add(txtProductCode.Text) //lst.SubItems.Add(txtProductName.Text) //lst.SubItems.Add(txtWeight.Text) //lst.SubItems.Add(txtPrice.Text) //lst.SubItems.Add(txtCartons.Text) //lst.SubItems.Add(CInt(Val(txtAvailablePackets.Text) / Val(txtAvailableCartons.Text))) //lst.SubItems.Add(txtPackets.Text) //lst.SubItems.Add(txtTotalAmount.Text) lst.SubItems.Add(txtProductName.Text); lst.SubItems.Add(txtCartons.Text); lst.SubItems.Add(txtTotalAmount.Text); lst.SubItems.Add(txtPid.Text); lst.SubItems.Add(txtPrice.Text); ListView1.Items.Add(lst); i = i + 1; txtSubTotal.Text = subtot(); txtProductCode.Text = ""; txtProductName.Text = ""; txtCartons.Text = ""; //txtWeight.Text = "" txtPrice.Text = ""; //txtAvailableCartons.Text = "" //txtSaleID.Text = "" txtPid.Text = ""; txtTotalAmount.Text = ""; return; } for (j = 0; j <= temp - 1; j++) { if ((ListView1.Items(j).SubItems(1).Text == txtProductName.Text)) { ListView1.Items(j).SubItems(1).Text = txtProductName.Text; ListView1.Items(j).SubItems(2).Text = txtCartons.Text; ListView1.Items(j).SubItems(3).Text = txtTotalAmount.Text; ListView1.Items(j).SubItems(4).Text = txtPid.Text; ListView1.Items(j).SubItems(5).Text = txtPrice.Text; //ListView1.Items(j).SubItems(5).Text = Val(ListView1.Items(j).SubItems(5).Text) + Val(txtCartons.Text) //ListView1.Items(j).SubItems(6).Text = Val(txtAvailablePackets.Text) / Val(txtAvailableCartons.Text) //ListView1.Items(j).SubItems(7).Text = Val(ListView1.Items(j).SubItems(7).Text) + Val(txtPackets.Text) //ListView1.Items(j).SubItems(8).Text = Val(ListView1.Items(j).SubItems(8).Text) + Val(txtTotalAmount.Text) txtSubTotal.Text = subtot(); txtProductCode.Text = ""; txtProductName.Text = ""; txtCartons.Text = ""; txtWeight.Text = ""; txtPrice.Text = ""; txtAvailableCartons.Text = ""; //txtSaleID.Text = "" txtPid.Text = ""; txtTotalAmount.Text = ""; return; } } int k; ListViewItem lst1 = new ListViewItem(k); //lst1.SubItems.Add(txtProductCode.Text) lst1.SubItems.Add(txtProductName.Text); //lst1.SubItems.Add(txtWeight.Text) lst1.SubItems.Add(txtCartons.Text); //lst1.SubItems.Add(Val(txtAvailablePackets.Text) / Val(txtAvailableCartons.Text)) //lst1.SubItems.Add(txtPackets.Text) lst1.SubItems.Add(txtTotalAmount.Text); lst1.SubItems.Add(txtPid.Text); lst1.SubItems.Add(txtPrice.Text); ListView1.Items.Add(lst1); k = k + 1; txtSubTotal.Text = subtot(); txtProductCode.Text = ""; txtProductName.Text = ""; txtCartons.Text = ""; txtWeight.Text = ""; txtPrice.Text = ""; txtAvailableCartons.Text = ""; //txtSaleID.Text = "" txtPid.Text = ""; txtTotalAmount.Text = ""; ProdCombo.Text = ""; } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); }
Maciej Los
А что не так с вашим кодом?