本文介绍了如何在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);
}

推荐答案

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中添加多行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-28 08:04
查看更多