如何判断列表框中的哪一行
本文关键字:一行 列表 何判断 判断 | 更新日期: 2023-09-27 18:31:24
基本上,我的代码中有一些静态数组,如下所示:
private string[] mFirst = new string[10] { "Amy", "Scott", "Jamie", "Sharon", "Brock", "Baxtor", "John", "", "", "" };
所以我必须在程序中为用户存储一些数据。现在,在程序中,我将存储的数据显示到列表框中。从那里,用户可以向其添加更多数据并显示它。
问题是我试图允许用户删除条目。我的删除功能工作正常。问题是它只是从列表框中删除它,实际上并没有从程序内部存储中删除它。因此,当我向用户重新显示存储的条目时,它会重新出现,因为它从未真正删除过。
我的问题是如何决定用户删除哪一行以及与哪个数据条目相关?我想过为每个数组条目分配一个数字,然后运行一个循环来删除该存储的条目,但我不知道从哪里开始这样做,或者是否有更简单的方法可以做到这一点,我只是不知道。
编辑:
ListBox.SelectedObjectCollection selectedItems = lstOutput.SelectedItems;
List<object> fixedItems = new List<object>();
fixedItems.Add(mFirstLine);
fixedItems.Add(mAverage);
fixedItems.Add(mHigh);
fixedItems.Add(mLow);
fixedItems.Add(mSpace);
for (int i = selectedItems.Count - 1; i >= 0; i--)
{
if (fixedItems.Contains(selectedItems[i]) == false)
{
lstOutput.Items.Remove(selectedItems[i]);
}
}
这就是我的删除方法的样子。我知道这不是最好的。所有 fixedItems.Add 都是我不想删除的标签。
要回答所有问题,我必须有一个静态数组。这不是自愿的;作业需要它。我完全同意动态是要走的路,但同样,它必须是静态的。所以@No名称的想法,不确定您的建议是否适用于静态数组。
这是Windows窗体。
@dav_i 不知道为什么我会删除所有内容并再次添加。我需要做的就是能够删除他们选择的那个条目,该条目被存储,然后我会添加所有内容。我可以从列表框中删除它,但不确定如何删除它实际存储在我的程序中的位置,因为我需要确切地知道它在数组中的哪个条目。
@AMR 不知道什么是数据绑定。我看看
我会建议你两件事。
-
使用更动态的通用列表。您不知道用户想要多少项目,从中删除会更容易:
做
List<string> mFirst = new List<string>(); mFirst.AddRange(new string[] { "Amy", "Scott", "Jamie", "Sharon", "Brock", "Baxtor", "John", "", "", "" }); listBox1.Items.AddRange(mFirst.ToArray());
-
删除您现在可以执行的项目
mFirst.RemoveAt(listBox1.SelectedIndex);
从listBox
中删除该项目时(在将其从listBox
中删除之前),您可以执行此操作