【发布时间】:2017-03-27 14:52:40
【问题描述】:
我目前有一个表单,它接受来自 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";
}
}
【问题讨论】:
-
将
newItemList的实例移到AddButton_Click方法之外。每次单击按钮时,您都会创建一个新列表并丢失现有列表的内容。 -
您每次都在覆盖
.Text。改为连接:将BasketBox.Text = newItemList[i] + "\n"更改为BasketBox.Text += newItemList[i] + "\n"; -
将
newItemList声明移到方法之外。或者附加到您的文本框的Text而不是替换它。阅读有关Variable and Method Scope in Microsoft .NET 的更多信息。或者看看TextBox.AppendText。 -
您是否将
Multiline属性关闭Text Box设置为true?我在我的编辑中写了它。 -
@MongZhu 是的,多行属性设置为true,我已经尝试过你所做的,但是它仍然只会覆盖已经写入的内容而不是进入新行
标签: c# arrays winforms textbox