C # поиск флажок в текстовом поле, но не помню, проверил или скопировать запись дважды в контрольный список C # - PullRequest
0 голосов
/ 06 февраля 2019

У меня проблемы с поиском контрольного списка в текстовом поле.Когда у меня есть 1 параметр

ladujZBazy(string mustContains)

Когда я проверял элементы в списке в checkedListBox1 и выполнял поиск некоторых элементов с помощью textBox1, моя предыдущая проверка пропала.

Я добавляю второй параметр в вашу функцию (тип bool)

void ladujZBazy(string mustContains, bool dropIndexes) 

, который по умолчанию будет ложным

private void dbopakowania_Load(object sender, EventArgs e)
    {
       ladujZBazy(null, false); 
    }

, а затем вызовет событие TextChanged текстового поля как ложное.

private void textBox1_TextChanged(object sender, EventArgs e)
    {
        ladujZBazy(textBox1.Text, false); //false
    }

На этот раз проверенное время не пропало, но дважды скопируйте запись в checklistbox. Когда значение boolean равно true, я проверял элементы в списке в selectedListBox1 и осуществлял поиск некоторых элементов с помощью textBox1. Моя предыдущая проверка пропала.Я хочу, чтобы при проверке и поиске некоторых элементов с помощью textBox1 моя предыдущая проверка не исчезла, и не копируйте запись дважды в контрольный список.Полный код:

    namespace Email_Sender
       {
 public partial class dbopakowania : Form
      {
     EmailSender emailsender;
    public List<List<string>> listOpakowaniaTabela = new List<List<string>>();
    public string doZamowienia = "";
    List<int> indexes = new List<int>();
    string typZgloszenia;

    public dbopakowania(EmailSender _emailsender, string _typZgloszenia)
    {
        InitializeComponent();
        this.emailsender = _emailsender;                        //przechwycenie obiektu EmailSender do lokalnego obiektu tego samego typu
        this.typZgloszenia = _typZgloszenia;

        if (typZgloszenia == "ZWROT")
       {
           label1.Text = "Zwróć opakowania:";
           btnGetItem.Text = "Zwróć";
           this.emailsender.txt_subject.Text = "Zwrot opakowań";
        }
        else if(typZgloszenia == "ZAMOWIENIE")
        {
            label1.Text = "Zamów opakowania:";
            btnGetItem.Text = "Zamów";
            this.emailsender.txt_subject.Text = "Zamówienie opakowań";
        }
    }

    private void dbopakowania_Load(object sender, EventArgs e)
    {
       ladujZBazy(null, false); 

    }

    private void button2_Click(object sender, EventArgs e)
    {
        if (label1.Text == "Zamów opakowania:")
        {
            for (int i = 0; i < checkedListBox1.Items.Count; i++)
            {
                if (checkedListBox1.GetItemCheckState(i) == CheckState.Checked)
                {
                    AddValueToZamówienieOpakowan oknoZamowieniaOpakowania_Szczegoly = new AddValueToZamówienieOpakowan(this, indexes[i]);
                    oknoZamowieniaOpakowania_Szczegoly.ShowDialog();

                    if (doZamowienia != "")
                    {
                        this.emailsender.pozycja++;
                        this.emailsender.txt_msg.Text += emailsender.pozycja.ToString() + "." + " " + doZamowienia;
                        //this.emailsender.txt_subject.Clear();
                        //this.emailsender.txt_subject.Text = "Zamówienie opakowań";
                    }
                }
            }
            this.Close();
        }
        else if (label1.Text == "Zwróć opakowania:")
        {
            for (int i = 0; i < checkedListBox1.Items.Count; i++)
            {
                if (checkedListBox1.GetItemCheckState(i) == CheckState.Checked)
                {
                    ZwrotOpakowan oknoZamowieniaOpakowania_Szczegoly = new ZwrotOpakowan(this, indexes[i]);
                    oknoZamowieniaOpakowania_Szczegoly.ShowDialog();

                    if (doZamowienia != "")
                    {
                        this.emailsender.pozycja++;
                        this.emailsender.txt_msg.Text += emailsender.pozycja.ToString() + "." + " " + doZamowienia;
                        //this.emailsender.txt_subject.Clear();
                        //this.emailsender.txt_subject.Text = "Zamówienie opakowań";
                    }
                }
            }
            this.Close();
        }
        else
        {
            MessageBox.Show("Nieoczekiwany Błąd - skontaktuj sie z admin", "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }

    }

    private void btn_close_Click(object sender, EventArgs e)
    {
        this.Close();
    }

    void ladujZBazy(string mustContains, bool dropIndexes) 
    {
       if (dropIndexes)

        {
         checkedListBox1.Items.Clear();
         listOpakowaniaTabela.Clear();
         indexes.Clear();
        }

        bazaproduktowDBEntities dc = new bazaproduktowDBEntities();

        var c1 = from d in dc.OpakowaniaTabela select d.NazwaOpakowania;
        var c2 = from d in dc.OpakowaniaTabela select "(" + d.PartiaOpakowania + ")";
        var c3 = from d in dc.OpakowaniaTabela select d.IloscOpakowania;
        var c4 = from d in dc.OpakowaniaTabela select d.JednostkaOpakowania;

        listOpakowaniaTabela.Add(c1.ToList());
        listOpakowaniaTabela.Add(c2.ToList());
        listOpakowaniaTabela.Add(c3.ToList());
        listOpakowaniaTabela.Add(c4.ToList());

        for (int i = 0; i < listOpakowaniaTabela[0].Count; i++)
        {
            string strToAdd = "";
            for (int j = 0; j < listOpakowaniaTabela.Count; j++)
            {
                strToAdd += " " + listOpakowaniaTabela[j][i] + " ";
            }
            if (mustContains == null)
            {
                checkedListBox1.Items.Add(strToAdd);
                indexes.Add(i);
            }
            else if (strToAdd.ToLower().Contains(mustContains.ToLower()))
            {
                checkedListBox1.Items.Add(strToAdd);
                indexes.Add(i);
            }
        }
    }

    private void textBox1_TextChanged(object sender, EventArgs e)
    {
        ladujZBazy(textBox1.Text, false); //false
    }

}

Любое решение?C #

...