C#在文本框上搜索复选框,但不要';I don’我不记得已选中或已将记录复制两次到复选框C#

C#在文本框上搜索复选框,但不要';I don’我不记得已选中或已将记录复制两次到复选框C#,c#,search,textbox,arguments,checklistbox,C#,Search,Textbox,Arguments,Checklistbox,我在文本框中搜索复选框时遇到问题。当我有一个参数 ladujZBazy(string mustContains) 当我在checkedListBox1中选中列表中的项目并使用textBox1搜索某些项目时,我的上一次检查就不存在了 我将第二个参数添加到函数(布尔类型) 默认情况下,它将为false private void dbopakowania_Load(object sender, EventArgs e) { ladujZBazy(null, false);

我在文本框中搜索复选框时遇到问题。当我有一个参数

ladujZBazy(string mustContains)
当我在checkedListBox1中选中列表中的项目并使用textBox1搜索某些项目时,我的上一次检查就不存在了

我将第二个参数添加到函数(布尔类型)

默认情况下,它将为false

private void dbopakowania_Load(object sender, EventArgs e)
    {
       ladujZBazy(null, false); 
    }
然后将textbox的TextChanged事件调用为false

private void textBox1_TextChanged(object sender, EventArgs e)
    {
        ladujZBazy(textBox1.Text, false); //false
    }
这一次勾选未消失,但将记录复制两次到checklistbox。。当布尔值为true时,我在checkedListBox1中检查了列表中的项目,并使用textBox1搜索了一些项目。我的上一次检查已取消。我希望当我使用textBox1选中并搜索某些项目时,我以前选中的项目不会消失,并且不会将记录复制两次到checklistbox。 完整代码:

    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
    }

}
名称空间电子邮件\u发件人
{
公共部分类dbopakowania:表单
{
电子邮件发送者;
public List listopakowanitabela=新列表();
公共字符串dozamovienia=“”;
列表索引=新列表();
弦乐;
公共dbopakowania(EmailSender\u EmailSender,string\u typzglossenia)
{
初始化组件();
this.emailsender=\u emailsender;//przechwycenie obiektu emailsender do lokalnego obiektu tego samego typu
this.typzglossenia=_typzglossenia;
如果(typzglossenia==“ZWROT”)
{
标签1.Text=“Zwróćopakowania:”;
btnGetItem.Text=“Zwróć”;
this.emailsender.txt_subject.Text=“Zwrot opakowań”;
}
else if(Typzglossenia==“Zamovienie”)
{
标签1.Text=“Zamów opakowania:”;
btnGetItem.Text=“Zamów”;
this.emailsender.txt_subject.Text=“Zamówienie opakowań”;
}
}
私有void dbopakowania_加载(对象发送方,事件参数e)
{
ladujZBazy(null,false);
}
私有无效按钮2\u单击(对象发送者,事件参数e)
{
如果(label1.Text==“Zamów opakowania:”)
{
对于(int i=0;i

任何解决方案?C#

如果从CheckedListBox中删除所有元素,那么当然这些元素的选中状态也会被删除。将新元素添加到CheckedListBox会将这些元素创建为默认的未选中状态。如果您需要以某种方式在新旧元素之间转移/保持选中状态,则需要复制t他检查了州政府
    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
    }

}