簡體   English   中英

避免重復列出項目

[英]Avoid duplication of list items

我有一個ListBox ,其中包含從ComboBox選擇的項目。 當我從我選擇了一個項目ComboBox ,它還會刪除我在該項目ComboBox

我有我的窗體上的按鈕,它可以讓我復制所選項目在我的ListBox ,給我兩人在同一個項目的ListBox

我的表單上還有一個按鈕,讓我從ListBox刪除選定的項目。 如果我從ListBox刪除一個項目,則該項目返回到ComboBox ,但是如果我復制了該項目並且從ListBox刪除了這兩個項目,則它們都將顯示在ComboBox

我不希望ComboBox有兩個相同的項目

這是我嘗試使用的代碼:

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);
        }
    }

這是我第一次在這里問問題。

編輯:

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);
            }
        }

我們需要強制轉換以將ComboBox的項目string ,以便現在可以輕松地檢查ComboBox.Items中已經存在的ListBox.SelectedItem

   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();
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM