C#-如何将变量放入第二列ListView

C#-如何将变量放入第二列ListView,c#,listview,button,count,C#,Listview,Button,Count,我有两张表格,表格一和表格二。 form1有两个按钮,btnVanilla和btnConfirm。 form2有一个listView,listView1 在form1上,单击香草一次后,香草旁边的数量列中应显示“1”。 但目前它在香草下面显示“1”。如何将其移至下一列 有一个截图显示了我的意思 表格1 公共部分类表单1:表单 { 私有字符串vanilla=“vanilla”; 私有列表_值=新列表(); 公共表格1() { 初始化组件(); } int vanillaCount=0 公共无效bt

我有两张表格,表格一和表格二。 form1有两个按钮,btnVanilla和btnConfirm。 form2有一个listView,listView1

在form1上,单击香草一次后,香草旁边的数量列中应显示“1”。 但目前它在香草下面显示“1”。如何将其移至下一列

有一个截图显示了我的意思

表格1

公共部分类表单1:表单
{
私有字符串vanilla=“vanilla”;
私有列表_值=新列表();
公共表格1()
{
初始化组件();
}
int vanillaCount=0
公共无效btnVanilla_单击(对象发送者,事件参数e)
{
如果(!_值包含(香草))
{
_添加(香草);
}
vanillaCount++;
}
私有void btnConconfirm\u单击(对象发送者,事件参数e)
{
form2 frm2=新的form2(_值,vanillaCount);
frm2.Show();
this.Hide();
}
}
表格2

public partial class form2 : Form
{
    private List<string> _values;

    public form2(List<string> _values)
    {
        this._values = _values;
    }
    public form2(List<string> passedValues, int vanillaCount)
    {
        InitializeComponent();
        foreach (var item in passedValues)
        {
            listView1.Items.Add(item);
        }
      listView1.Items[0].SubItems[1].Text = vanillaCount.ToString();
    }
    }
公共部分类表单2:表单
{
私有列表值;
公共表格2(列表值)
{
这是。_值=_值;
}
公共表单2(列出传递的值,整数)
{
初始化组件();
foreach(passedValues中的var项)
{
listView1.Items.Add(项目);
}
listView1.Items[0]。子项[1]。Text=vanillaCount.ToString();
}
}

您确定这一行

 listView1.Items[0].SubItems[1].Text = vanillaCount.ToString();
对吗?您没有在任何地方创建子项,它应该是

listView1.Items[0].SubItems.Add(vanillaCount.ToString());

你确定这条线

 listView1.Items[0].SubItems[1].Text = vanillaCount.ToString();
对吗?您没有在任何地方创建子项,它应该是

listView1.Items[0].SubItems.Add(vanillaCount.ToString());

对于您的问题,请使用以下方法:

ListViewItem row = new ListViewItem(); 
row.SubItems.Add(value.ToString()); 
listview1.Items.Add(row);

如果listview中有列,您可以重复第二行的次数,以解决您的问题,使用如下方法:

ListViewItem row = new ListViewItem(); 
row.SubItems.Add(value.ToString()); 
listview1.Items.Add(row);

重复第二行的次数与listview中的列数相同

针对实际问题的一种解决方案:

public Form2(List<string> passedValues, int vanillaCount)
        {
            InitializeComponent();

            // This line let you show more Columns
            listView1.View = View.Details;

            // Define your needed Columns 
            listView1.Columns.Add("Item-Name", -2); //(the width with -2 means, that the column will be autosized)
            listView1.Columns.Add("Quantity");

            foreach (var item in passedValues)
            {
                // Create a new ListViewItem "Vanilla", add your needed Subitems like Quantity, Price, ...
                var newItem = new ListViewItem(item);
                newItem.SubItems.Add(vanillaCount.ToString());

                // add the new Item to your ListView 
                listView1.Items.Add(newItem);
            }
        }

针对实际问题的一种解决方案:

public Form2(List<string> passedValues, int vanillaCount)
        {
            InitializeComponent();

            // This line let you show more Columns
            listView1.View = View.Details;

            // Define your needed Columns 
            listView1.Columns.Add("Item-Name", -2); //(the width with -2 means, that the column will be autosized)
            listView1.Columns.Add("Quantity");

            foreach (var item in passedValues)
            {
                // Create a new ListViewItem "Vanilla", add your needed Subitems like Quantity, Price, ...
                var newItem = new ListViewItem(item);
                newItem.SubItems.Add(vanillaCount.ToString());

                // add the new Item to your ListView 
                listView1.Items.Add(newItem);
            }
        }