如何在listview中添加多行 [英] How do I add multiple rows into listview
问题描述
大家好
我有一个包含以下列标题的列表视图:
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);
}
推荐答案
如果我理解你,你希望每次将这些textBox的内容添加到ListView中单击了AddToCart按钮。对吧?
如果是,则处理AddToCart按钮的Click事件并将第一个c#代码粘贴到其中。
例如
If I understand you well, you want the content of those textBoxes to be added to the ListView each time the AddToCart button is been clicked. right?
if yes then handle the Click Event of the AddToCart button and paste your first c# code in it.
for example
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;
}
HI Gizmo
谢谢您的解决方案
我看到我有以下代码(来自vb)
int temp;
temp = RegWindow.Items.Count;
if(temp == 0)
i删除了这件作品并解决了我的问题
谢谢
HI Gizmo
thank you for the solution
I see that i had below code (From vb)
int temp;
temp = RegWindow.Items.Count;
if (temp == 0)
i removed this piece and it solved my problem
Thanks
这篇关于如何在listview中添加多行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!