我是编程新手,无法按照自己的意愿清理列表框。发生的情况是用户能够输入一个值,然后将其存储到一个数组中,然后将其添加到列表框中。用户可以随时清除阵列/列表框。但输入一个值后,例如123然后显示在列表框上,然后使用清除按钮。然后再输入另一个值,例如555,而不是555是lisbox中的第一个数字,它是:0,155。如果我再次清除然后添加另一个数字,例如1123,输出为:0,0,1123。等。我似乎只清除了前面的元素,只是将数字放到下一个索引。如何清空数组/列表框,以便我只在第一个索引中添加数字,而不是在我的列表框中显示0000 ... N.
按钮清除:
private void btnClear_Click(object sender, EventArgs e)
{
Array.Clear(numArray, 0, numArray.Length);
lstHoldValue.Items.Clear();
}
答案 0 :(得分:0)
您可以使用Add()
方法将项目插入特定索引中,而不是使用Insert(Int32, Object)
方法,而不是
lstHoldValue.Items.Insert(0, numArray[i]);
最好是将列表框与新数组内容重新绑定
lstHoldValue.DataSource = numArray;
答案 1 :(得分:0)
Array.Clear
方法仅将值重置为默认值(如果是整数,则为0)。
清除数组的一种快速方法是重新初始化它,即numArray = new int[10]
来源:https://msdn.microsoft.com/en-us/library/system.array.clear(v=vs.110).aspx
答案 2 :(得分:0)
问题可能是您在单击清除时未将索引值重置为0。我认为在清除numArray的代码中,你将值设置为0或者你正在创建另一个数组,但是记住index仍然是清除前的状态。如果没有,请发布您的清算代码,我可以提供帮助。
我刚看到你的清算代码,这正是原因所在。将其添加到您的清晰代码中:
this.index = 0;