Hi All
I have a listview with the following column headers:
ProductName
QTY
TotalAmount
I have a button AddToCart with the following code:
{
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;
}
This fills the listview with the correct info retrieved from textboxes
The problem is that above code does not add anything after entering new values in the textboxes
What do i need to have 2 rows in the listview after AddToCart is pressed again with new textbox values
This is a c# winform application
What I have tried:
I had similar vb.net code which worked 100%
I tried coverting the vb code into c# but it does not work
I have only recently started to code in C#
Thank you in advance
Below the vb code:
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(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 = ""
txtPrice.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
txtSubTotal.Text = subtot()
txtProductCode.Text = ""
txtProductName.Text = ""
txtCartons.Text = ""
txtWeight.Text = ""
txtPrice.Text = ""
txtAvailableCartons.Text = ""
txtPid.Text = ""
txtTotalAmount.Text = ""
Exit Sub
End If
Next j
Dim k As Integer
Dim lst1 As New ListViewItem(k)
lst1.SubItems.Add(txtProductName.Text)
lst1.SubItems.Add(txtCartons.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 = ""
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);
}