Windows.Forms.CheckBox собрать значения из выбранных чекбоксов

SilverSun

Client
Регистрация
31.10.2013
Сообщения
172
Благодарностей
24
Баллы
18
Всем привет. Ребята, помогите, пожалуйста. Есть форма с чек боксами. Нужно при закрытии формы кнопкой, собрать в одну переменную все текстовые значения со всех выбранных чек боксов.
форма:
System.Windows.Forms.Form F = new System.Windows.Forms.Form();
F.Text = "Форма";
F.AutoSize=true;
F.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;

   System.Windows.Forms.CheckBox checkBox1;
        System.Windows.Forms.CheckBox checkBox2;
        System.Windows.Forms.CheckBox checkBox3;
        System.Windows.Forms.Button button1;
        System.Windows.Forms.CheckBox checkBox4;
  
            checkBox1 = new System.Windows.Forms.CheckBox();
            checkBox2 = new System.Windows.Forms.CheckBox();
            checkBox3 = new System.Windows.Forms.CheckBox();
            button1 = new System.Windows.Forms.Button();
            checkBox4 = new System.Windows.Forms.CheckBox();
            //
            // checkBox1
            //
            checkBox1.AutoSize = true;
            checkBox1.Location = new System.Drawing.Point(129, 43);
            checkBox1.Name = "checkBox1";
            checkBox1.Size = new System.Drawing.Size(82, 19);
            checkBox1.TabIndex = 0;
            checkBox1.Text = "checkBox1";
            checkBox1.UseVisualStyleBackColor = true;
            //
            // checkBox2
            //
            checkBox2.AutoSize = true;
            checkBox2.Location = new System.Drawing.Point(129, 69);
            checkBox2.Name = "checkBox2";
            checkBox2.Size = new System.Drawing.Size(82, 19);
            checkBox2.TabIndex = 1;
            checkBox2.Text = "checkBox2";
            checkBox2.UseVisualStyleBackColor = true;
            //
            // checkBox3
            //
            checkBox3.AutoSize = true;
            checkBox3.Location = new System.Drawing.Point(129, 95);
            checkBox3.Name = "checkBox3";
            checkBox3.Size = new System.Drawing.Size(82, 19);
            checkBox3.TabIndex = 2;
            checkBox3.Text = "checkBox3";
            checkBox3.UseVisualStyleBackColor = true;
            //
            // button1
            //
            button1.Location = new System.Drawing.Point(136, 177);
            button1.Name = "button1";
            button1.Size = new System.Drawing.Size(75, 23);
            button1.TabIndex = 3;
            button1.Text = "button1";
            button1.UseVisualStyleBackColor = true;
            //
            // checkBox4
            //
            checkBox4.AutoSize = true;
            checkBox4.Location = new System.Drawing.Point(129, 120);
            checkBox4.Name = "checkBox4";
            checkBox4.Size = new System.Drawing.Size(82, 19);
            checkBox4.TabIndex = 4;
            checkBox4.Text = "checkBox4";
            checkBox4.UseVisualStyleBackColor = true;
            //
            // Form1
            //
            F.Controls.Add(button1);           
            F.Controls.Add(checkBox4);
            F.Controls.Add(checkBox3);
            F.Controls.Add(checkBox2);
            F.Controls.Add(checkBox1);



//запускаем форму
F.ShowDialog();
 

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 021
Благодарностей
1 385
Баллы
113
C#:
System.Windows.Forms.Control[] checks = new[]{checkBox1, checkBox2, checkBox3, checkBox4};//закинем чекбоксы в массив
F.Controls.AddRange(checks);//этим же массивом и добавим их на форму
button1.Click += delegate(object sender, System.EventArgs e){
    var list = new List<string>();
    foreach(System.Windows.Forms.CheckBox cb in checks)//и в этом же массиве проверим выбранные чекбоксы
        if(cb.Checked)
            list.Add(cb.Text);
    project.SendInfoToLog(string.Join(",", list));
    F.Dispose();
};
F.Controls.Add(button1);
//запускаем форму
F.ShowDialog();
Заменить в коде выше со строки 69 включительно до конца этим кодом.
 
  • Спасибо
Реакции: BAZAg, DevOps и SilverSun

SilverSun

Client
Регистрация
31.10.2013
Сообщения
172
Благодарностей
24
Баллы
18
Спасибо, все отлично работает!
 

matt_stiffler

Новичок
Регистрация
15.10.2019
Сообщения
2
Благодарностей
0
Баллы
1
Здравствуйте.
Я плохо знаю C#.
Не могу понять, где в коде указана переменная, в которую будут переданы выбранные значения?
Подскажите, пожалуйста, что нужно добавить/изменить в коде, чтобы выбранные значения чекбоксов падали в переменную? Например, в переменную "region"

Заранее благодарен!
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)