jeudi 28 septembre 2017

C# Checkbox-Dialog How to uncheck

I have a Windows Forms Dialog in C# which shows Checkboxes for each Element in a Dictionary. The Dialog returns a List with all selected Elements(Checkboxes). However I noticed that if I select a Checkbox and then uncheck it again, the Element is still in the returned List of Selected Elements. How can I fix this? My Dialog looks like this:

public SelectDialog(Dictionary<string, string> Result)
    {
        int left = 45;
        int idx = 0;
        InitializeComponent();
        for (int i = 0; i < Result.Count; i++)
        {
            CheckBox rdb = new CheckBox();
            rdb.Text = Result.Values.ElementAt(i).Equals("") ? Result.Keys.ElementAt(i) : Result.Values.ElementAt(i);
            rdb.Size = new Size(100, 30);
            this.Controls.Add(rdb);
            rdb.Location = new Point(left, 70 + 35 * idx++);
            if (idx == 3)
            {
                idx = 0; //Reihe zurücksetzen
                left += rdb.Width + 5; // nächste Spalte
            }
            rdb.CheckedChanged += (s, ee) =>
            {
                var r = s as CheckBox;
                if (r.Checked)
                    this.selectedString.Add(r.Text);
            };
        }
    }
//Some more Code
}




Aucun commentaire:

Enregistrer un commentaire