Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C按钮增加/减少一个值_C#_Winforms - Fatal编程技术网

C# C按钮增加/减少一个值

C# C按钮增加/减少一个值,c#,winforms,C#,Winforms,作为一个小型的个人项目,我正在C中开发一个库存系统 我已经设法使表单中的基本功能正常工作,但是我很难找到如何添加一个按钮来增加或减少产品数量1。库存存储在ListViewItem对象中。 或者让用户在文本框中输入一个值,选择产品后,它将在不影响其他产品的情况下更改该产品的数量 下面的代码显示了我为用户编写的代码,用户可以在文本框中手动输入值,单击选中产品的按钮将更新数量。没有撞车,根本没什么作用 private void PlusOne_Click(object sender, Even

作为一个小型的个人项目,我正在C中开发一个库存系统

我已经设法使表单中的基本功能正常工作,但是我很难找到如何添加一个按钮来增加或减少产品数量1。库存存储在ListViewItem对象中。 或者让用户在文本框中输入一个值,选择产品后,它将在不影响其他产品的情况下更改该产品的数量

下面的代码显示了我为用户编写的代码,用户可以在文本框中手动输入值,单击选中产品的按钮将更新数量。没有撞车,根本没什么作用

    private void PlusOne_Click(object sender, EventArgs e)
    {
        foreach (ListViewItem list in listView1.SelectedItems)
        {
            list.SubItems.Add(addBox.Text);
        }
    }

    private void addBox_TextChanged(object sender, EventArgs e)
    {
        int addOne = int.Parse(addBox.Text);
    }

这将增加列表视图中的所有选定项

我假设每个产品有一个ListViewItem,第一个子项存储数量值。子项从第二列开始显示。第一列与项目本身相对应

private void PlusOne_Click(object sender, EventArgs e)
{
    const int quantityColumn = 0;
    int increment = int.Parse(PlusOne.Text);
    foreach (ListViewItem list in listView1.SelectedItems)
    {
       int qty = 0;
       if (list.SubItems.Count != 0) {
            qty = int.Parse(list.SubItems[quantityColumn].Text);
        }
        list.SubItems[quantityColumn].Text = (qty + increment).ToString();
    }
}

list.SubItems.addbox.Text;这将添加一个子项,与添加数字无关!如果确实要添加子项,则需要a将ListView置于View=Details模式,b为每个子项设置一列,以便为其提供显示空间..-如果您想添加数字,则需要将列表强制转换为int,然后添加数字,而不是文本。。可能是这样的:list.Text=int.Parselist.Text+int.ParseaddBox.Text;我已经创建了两列,一列用于产品名称,另一列用于数量。我似乎不知道如何正确解析该值。虽然没有测试/验证的规定,但您的解析是正确的。特里帕司将用于此。但解析后的值将被丢弃。不确定你到底想要什么。增加1还是使用文本框值?如果数字在第二个子项中,请使用列表。子项[1]。Text=int.ParselistSubItems[1]。Text+int.ParseaddBox.Text;在这个阶段,我对任何一种方法都很满意。我尝试了下面的几个例子,以及我以前用不同的方法尝试过的,但是不断出现FormatException错误。你为什么不在问题中提到这个错误呢?你写的是没有崩溃,它根本不起任何作用。现在是哪个?还要显示您试图分析的文本。子项从第二列开始显示。否:子项[0]是项@TaW,list是foreach中项目的坏名称。实际上,list是ListViewItem类型的对象。ListViewItem有一个属性:Subitems,它是ListViewItem.ListViewSubItem的集合。从图形上看,ListViewItem.Text显示在第一列,下一列中的子项感谢您。我已经试过了,但是它抛出了一个FormatException错误。不需要向我解释ListView。我的评论仍然有效,但我们可以做到:子项[0]。Text==Item.Text;但是关于op使用坏名称的说法是正确的。您确定子项具有有效的数字吗。这是一个例子。您应该检查plusOne和子项是否有有效的数字。我添加了一个检查项,它没有子项