Как добавить и удалить значения из ComboBox в CheckedListBox - PullRequest
0 голосов
/ 03 мая 2019

Что мне нужно:
Мне нужны ComboBox и CheckedListBox с точно такими же значениями.
У меня есть кнопка для добавления значений и удаления значений.

Вот моя Add кнопка:

private void button5_Click(object sender, EventArgs e)
{
    checkedListBox1.Items.Add(comboBox1.Text);
    comboBox1.Items.Add(comboBox1.Text);
    comboBox1.Text = "";
}

и моя Delete кнопка:

private void button6_Click(object sender, EventArgs e)
{
    comboBox1.Items.Remove(comboBox1.SelectedItem);
}

Я бы хотел удалить записи вCheckedListBox без необходимости сначала выбирать его, мне нужно только выбрать его в comboBox1.

1 Ответ

0 голосов
/ 03 мая 2019

Поскольку вы добавляете те же строки, вы можете использовать метод IndexOf () , чтобы получить индекс, в котором находится текущая строка в вашем CheckedListBox, и RemoveAt () чтобы удалить его.
Убедитесь, что ComboBox.SelectedItem не является нулевым.Вы можете использовать метод GetItemText () , чтобы получить выбранную строку.Если SelectedItem равно нулю, вы получите пустую строку.

private void button6_Click(object sender, EventArgs e)
{
    string currentItem = comboBox1.GetItemText(comboBox1.SelectedItem);
    if (!string.IsNullOrEmpty(currentItem))
    {
         checkedListBox1.Items.RemoveAt(checkedListBox1.Items.IndexOf(currentItem));
         comboBox1.Items.Remove(comboBox1.SelectedItem);
    }
}

Метод2:
Если элементы двух элементов управления расположены в одном и том же индексе, вместо этого вы можете использовать оба параметра: ComboBox.SelectedIndex - RemoveAt():

private void button6_Click(object sender, EventArgs e)
{
    if (comboBox1.SelectedIndex >= 0)
    {
        checkedListBox1.Items.RemoveAt(comboBox1.SelectedIndex);
        comboBox1.Items.RemoveAt(comboBox1.SelectedIndex);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...