Как я могу удалить элемент (запись из текстового поля) в списке
В моей форме есть TextBox1 и ListBox1, buttonAdd, buttonRemove
buttonAdd => ОК, я могу это сделать. buttonRemove: Когда вы удаляете раздел: - Удалить запись из текстового поля: Отметьте, что один элемент в списке элементов должен быть удален, если есть очистить, если нет, сообщение не найдено - Удалить выбранный элемент в списке
Это моя идея:
private void butonRemove_Click(object sender, EventArgs e)
{
if (textbox1.Text != "")
{
int i = 0;
while (i <= listbox1.Items.Count)
{
string Item_remove = textbox1.Text;
if (listbox1.Items[i].ToString().Contains(Item_remove))
{
DialogResult conf_remove;
conf_remove = MessageBox.Show("Do you wwant to remove: " + listbox1.Items[i].ToString(), "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if (conf_remove == DialogResult.Yes)
{
listbox1.Items.RemoveAt(i);
break;
}
else if (conf_remove == DialogResult.No)
i++;
}
else
{
MessageBox.Show("Not found");
break;
}
}
textbox1.Text = "";
textbox1.Focus();
}
else if (listbox1.SelectedIndex < 0)
MessageBox.Show("Please select item to remove");
else
listbox1.Items.Remove(listbox1.SelectedItem);
}
Пожалуйста, помогите мне исправить это, спасибо
3 ответа
Вот код для удаления элемента.
private void buttonRemove_Click(object sender, EventArgs e) {
if (listBox1.SelectedIndex == -1) { // Not Selected Anything
MessageBox.Show("Select an item to delete");
}
else {
listBox1.Items.RemoveAt(listBox1.SelectedIndex); // Remove item
}
}
Это то, что вы ищете, это также контролирует всю необходимую вам проверку.
if (ListBox.SelectedIndex == -1)
{
if (ListBox.NumberOfItems == 0) // if no index, need to select a row!
{
MessageBox.Show("No items to remove!");
}
else
{
MessageBox.Show("Please select an item first!");
}
}
else
{
ListBox.Items.RemoveAt(lstStorage.SelectedIndex);
}
Это удалит выбранный элемент с необходимой вам проверкой.
Я также прокомментировал некоторый код, чтобы показать вам, что означают части. Если вам нужно больше объяснений, как это работает, просто спросите:)
Что-то вроде этого?
void buttonRemove_Click(object sender, EventArgs e)
{
string matchcode = TextBox1.Text;
ListItem item = this.ListBox1.Items.FindByText(matchcode);
if (item != null)
{
//found
this.ListBox1.Items.Remove(item);
}
else
{
//not found
MessageBox.Show("is not found");
}
}