如何在listview中添加多行 [英] How do I add multiple rows into listview

查看:102
本文介绍了如何在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆