将多个项添加到数组中并在文本框中显示数组

时间:2017-03-27 14:52:41

标签: c# arrays winforms textbox

我目前有一个表单,它接收来自2个文本框和1个numericUpDown的3个用户输入。

我希望能够在单击按钮时获取此处放置的值,并将所有3的值显示在单独的文本框中。

当有多个添加内容时会出现问题。 我尝试创建一个数组,但它仍然只显示最后一个输入。

        private void AddButton_Click(object sender, EventArgs e)
    {
        string newItem = NameTextBox.Text + "\t" +  QuantityBox.Value.ToString() + "\t" + PriceBox.Text;
        List<String> newItemList = new List<string>();
        newItemList.Add(newItem);
        for(int i = 0; i < newItemList.Count; i++)
        {
            BasketBox.Text = newItemList[i] + "\n";
        }
    }

3 个答案:

答案 0 :(得分:1)

在函数外部创建列表,这样你就可以维护输入列表, 并在每次点击时显示更新的列表。

var addProperty = {
    OwnerName: 'OwnerName',
    OwnerEmail: 'OwnerEmail',
    OwnerMobile: 'OwnerMobile',
    OwnerType: 'OwnerType',
    Propertyfor: 'rent',
    ProjectName: 'ProjectName',
    ProjectAddress: 'ProjectAddress',
    State: 'State',
    City: 'City',
    Area: 'Area',
    ProjectType: 'ProjectType',
    BHK: 'BHK',
    Bathroom: 'Bathroom',
    Balcony: 'Balcony',
    Builtup: 'Builtup',
    Carpet: 'Carpet',
    Unit: 'Unit',
    Furnish: 'Furnish'
};

if (addProperty.Propertyfor == 'rent') {
    var obj = { RentPossessionDate: 'RentPossessionDate',
                MonthlyRent: 'MonthlyRent',
                Maintanace: 'Maintanace',
                SecuiryDeposit: 'SecuiryDeposit',
                Bachelors: 'Bachelors',
                RentNegotiable: 'RentNegotiable'
              };
    $.extend(addProperty, obj);
    console.log(addProperty);
}

答案 1 :(得分:0)

你可以这样做:

private void AddButton_Click(object sender, EventArgs e)
    {
        string newItem = NameTextBox.Text + "\t" +  QuantityBox.Value.ToString() + "\t" + PriceBox.Text;
        List<String> newItemList = new List<string>();
        newItemList.Add(newItem);
        for(int i = 0; i < newItemList.Count; i++)
        {
            BasketBox.Text += newItemList[i] + "\n"; // this will add the text to your box
        }
    }

这将删除&#39; BasketBox中的旧文:

BasketBox.Text = newItemList[i] + "\n"

这将在BasketBox中添加文字:

BasketBox.Text += newItemList[i] + "\n"

答案 2 :(得分:0)

有一个很酷的方法String.Join,可以一次性完成列表中字符串项的串联:

BasketBox.Text = String.Join(Environment.NewLine, newItemList);

如果您在每次单击按钮之外声明列表,则会向其添加一个项目,并且将显示所有项目:

List<String> newItemList = new List<string>();

private void AddButton_Click(object sender, EventArgs e)
{
    string newItem = NameTextBox.Text + "\t" +  QuantityBox.Value.ToString() + "\t" + PriceBox.Text;
    newItemList.Add(newItem);
    BasketBox.Text = String.Join(Environment.NewLine, newItemList);
}

编辑:

这当然只有在您将属性Multiline设置为true时才有效。