问题描述
大家好
我有一个包含以下列标题的列表视图:
ProductName
QTY
TotalAmount
我有一个按钮AddToCart,代码如下:
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;
}
这会在列表视图中填写从文本框中检索到的正确信息
问题是上面的代码在文本框中输入新值后没有添加任何内容
我需要在listview中拥有2行使用新文本框值再次按下AddToCart
这是ac#winform应用程序
我尝试了什么:
我有类似的vb.net代码100%工作
我尝试将vb代码转换为c#但它不起作用
我最近才开始在C#中编码
谢谢你提前
在vb代码下面:
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(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);
}
推荐答案
private void AddToCart_Click(object sender, EventArgs e)
{
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中添加多行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!