Как я могу удалить элемент (запись из текстового поля) в списке

В моей форме есть 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");
    }
}
Другие вопросы по тегам