简体   繁体   中英

Avoid duplication of list items

I have a ListBox that contains items, which I have chosen from a ComboBox . When I chose an item from my ComboBox , it also removes that item in my ComboBox .

I have a button on my form, that let's me duplicate the selected item in my ListBox , giving me two of the same items in the ListBox .

I also have a button on my form, that let's me remove the selected item from my ListBox . If I remove an item from the ListBox , that item goes back to the ComboBox , but if I have duplicated the item and I remove both items from the ListBox , they both show up in the ComboBox .

I don't want it to be possible to have two of the same item in the ComboBox

Here's the code I have tried to use:

private void buttonRemove_Click(object sender, EventArgs e)
    {
        try
        {
            if (ComboBox.ToString().Contains("Chicken McNuggets"))
            {
                found = true;
            }
            if (!found)
            {
                ComboBox.Items.Add("Chicken McNuggets");
                found = false;
            }
            ListBox.Items.Remove(ListBox.SelectedItem);
        }
        catch
        {
            MessageBox.Show(// Message);
        }
    }

This is my first time asking a question in here.

edit:

private void buttonRemove_Click(object sender, EventArgs e)
        {
            try
            {
                if ((String)listBox.SelectedItem == "Big Mac" || (String)listBox.SelectedItem == "Quarter Pounder" || (String)listBox.SelectedItem == "McFeast" || (String)listBox.SelectedItem == "Cheeseburger" || (String)listBox.SelectedItem == "Hamburger" || (String)listBox.SelectedItem == "Big Tasty Bacon" || (String)listBox.SelectedItem == "McChicken" || (String)listBox.SelectedItem == "Fillet-O-Fish" || (String)listBox.SelectedItem == "Chicken Nuggets")
                {
                    comboBox.Items.Add(listBox.SelectedItem);
                    listBox.Items.Remove(listBox.SelectedItem);
                }
                else if ((String)listBox.SelectedItem == "BBQ dip" || (String)listBox.SelectedItem == "Cheddar dip" || (String)listBox.SelectedItem == "Gulerod" || (String)listBox.SelectedItem == "Hvidløgs dip" || (String)listBox.SelectedItem == "Karry dip" || (String)listBox.SelectedItem == "Ketchup" || (String)listBox.SelectedItem == "Pommes Frites Sauce" || (String)listBox.SelectedItem == "Sennep dip" || (String)listBox.SelectedItem == "Sursød dip" || (String)listBox.SelectedItem == "Æbler")
                {
                    comboBox2.Items.Add(listBox.SelectedItem);
                    listBox.Items.Remove(listBox.SelectedItem);
                }
                else if ((String)listBox.SelectedItem == "Gulerodskage" || (String)listBox.SelectedItem == "Kanelsnegl" || (String)listBox.SelectedItem == "McDonut chokolade" || (String)listBox.SelectedItem == "Sundae m. chokoladesauce" || (String)listBox.SelectedItem == "McDonut sukkerovertræk" || (String)listBox.SelectedItem == "McFlurry Daim" || (String)listBox.SelectedItem == "McFlurry Smarties" || (String)listBox.SelectedItem == "Sundae m. jordbærdsauce" || (String)listBox.SelectedItem == "Sundae m. karamelsauce" || (String)listBox.SelectedItem == "Triple chokolade muffin" || (String)listBox.SelectedItem == "Vaffelis")
                {
                    comboBox3.Items.Add(listBox.SelectedItem);
                    listBox.Items.Remove(listBox.SelectedItem);
                }
                else if (listBox.SelectedItem.ToString().Contains("Stor") || listBox.SelectedItem.ToString().Contains("Mellem") || listBox.SelectedItem.ToString().Contains("Lille") || listBox.SelectedItem.ToString().Contains("9") || listBox.SelectedItem.ToString().Contains("6") || listBox.SelectedItem.ToString().Contains("4"))
                {
                    string objectToString = listBox.SelectedItem.ToString();
                    string[] ord = objektToString.Split(' ');
                    string selectedItem = listBox.SelectedItem;

                    var check = comboBox.Items.Cast<string>()
                         .ToList()
                         .FirstOrDefault(c => c.Contains(selectedItem));
                    if (check != null)
                    {
                        comboBox.Items.Add("Chicken McNuggets");
                    }
                    else
                    {
                        listBox.Items.Remove(selectedItem);
                    }
                    if (listBox.SelectedItem.ToString().Contains("Pommes Frites"))
                        comboBox2.Items.Add(ord[1] + " " + ord[2]);
                    else if (listBox.SelectedItem.ToString().Equals("Stor Coca-Cola") || listBox.SelectedItem.ToString().Equals("Mellem Coca-Cola") || listBox.SelectedItem.ToString().Equals("Lille Coca-Cola"))
                        comboBox4.Items.Add(ord[1]);
                    else if (listBox.SelectedItem.ToString().Contains("Milkshake"))
                        comboBox4.Items.Add(ord[1] + " " + ord[2] + " " + ord[3]);
                    else
                        comboBox4.Items.Add(ord[1] + " " + ord[2]);
                    listBox.Items.Remove(listBox.SelectedItem);
                }
            }
            catch
            {
                MessageBox.Show(// Message);
            }
        }

We need to Cast to string the items from ComboBox so we can now easily check the ListBox.SelectedItem that already from ComboBox.Items .

   private void buttonRemove_Click(object sender, EventArgs e)
    {
        try
        {
            string selectedItems = listBox1.SelectedItem.ToString();

            var check = comboBox1.Items.Cast<string>()
                 .ToList()
                 .FirstOrDefault(c => c.Contains(selectedItems));

            if (check != null)
            {

            }
            else
            {
                comboBox.Items.Add("Chicken McNuggets");
                listBox1.Items.Remove(selectedItems);
            }
        }
        catch
        {
            //MessageBox.Show();
        }
    }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM