несколько вопросов с несколькими переключателем c # - PullRequest
0 голосов
/ 08 ноября 2018

Я разработал настольное приложение, которое содержит несколько вопросов, и ответы были получены с несколькими переключателями, но при ответе на новый вопрос предыдущий ответ переключателя исчезает, а новый переключатель проверяется. Может ли кто-нибудь помочь мне показать все включенные переключатели в панели?

предоставление кода, содержащего переключатель для проверки всех вопросов

while (dr13.Read())
{
    String ss = (dr13["ans"]).ToString();
    Console.WriteLine(ss);
    String comme = (dr13["comment"]).ToString();
    Console.WriteLine(comme);
    String fridd = (dr13["frid"]).ToString();
    Console.WriteLine(fridd);


    RadioButton rb = new RadioButton();
    rb.Width = 130;
    rb.Text = "Satisfactory";
    rb.ForeColor = Color.White;
    if (ss == "Satisfactory")
    {
        rb.Checked = true;
    }
    rb.CheckedChanged += marpolradiosatis;
    rb.Tag = fridd;

    flowLayoutPanel1.Controls.Add(rb);

    RadioButton rb1 = new RadioButton();
    rb1.Text = "Not satisfactory";
    rb1.Width = 130;
    rb1.ForeColor = Color.White;
    if (ss == "Not satisfactory")
    {
        rb1.Checked = true;
    }
    rb1.CheckedChanged += marpolradionot;
    rb1.Tag = fridd;
    flowLayoutPanel1.Controls.Add(rb1);

    RadioButton rb2 = new RadioButton();
    rb2.Text = "Need improvement";
    rb2.Width = 160;
    rb2.ForeColor = Color.White;
    if (ss == "Need improvement")
    {
        rb2.Checked = true;
    }
    rb2.CheckedChanged += marpolradioneed;
    rb2.Tag = fridd;
    flowLayoutPanel1.Controls.Add(rb2);

    RadioButton rb3 = new RadioButton();
    rb3.Text = "NA";
    rb3.Width = 130;
    rb3.ForeColor = Color.White;
    if (ss == "NA")
    {
        rb3.Checked = true;
    }
    rb3.CheckedChanged += marpolradiona;
    rb3.Tag = fridd;
    flowLayoutPanel1.Controls.Add(rb3);
}

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Вышеупомянутый вопрос работал, оборачивая все кнопки Radio с помощью группы Radio. Предоставление сработавшего кода с помощью группы Радио.

while (dr13.Read())
{
    String ss = (dr13["ans"]).ToString();
    Console.WriteLine(ss);
    String comme = (dr13["comment"]).ToString();
    Console.WriteLine(comme);
    String fridd = (dr13["frid"]).ToString();

    GroupBox gb = new GroupBox();
    gb.Width = 700;
    gb.Height = 50;

    RadioButton rb = new RadioButton();
    rb.Width = 130;
    rb.Text = "Satisfactory";
    rb.ForeColor = Color.White;
    rb.Name = fridd;
    if (ss == "Satisfactory")
    {
        rb.Checked = true;
    }
    RadioButton rb1 = new RadioButton();
    rb1.Text = "Not satisfactory";
    rb1.Width = 130;
    rb1.ForeColor = Color.White;
    rb1.Name = fridd;
    if (ss == "Not satisfactory")
    {
        rb1.Checked = true;
    }
    RadioButton rb2 = new RadioButton();
    rb2.Text = "Need improvement";
    rb2.Width = 160;
    rb2.ForeColor = Color.White;
    rb2.Name = fridd;
    if (ss == "Need improvement")
    {
        rb2.Checked = true;
    }
    RadioButton rb3 = new RadioButton();
    rb3.Text = "NA";
    rb3.Width = 130;
    rb3.ForeColor = Color.White;
    rb.Name = fridd;
    if (ss == "NA")
    {
        rb3.Checked = true;
    }
    gb.Controls.Add(rb);
    gb.Controls.Add(rb1);
    gb.Controls.Add(rb2);
    gb.Controls.Add(rb3);
    this.Controls.Add(gb);
    flowLayoutPanel1.Controls.Add(gb);
}
0 голосов
/ 08 ноября 2018

Радиокнопки предназначены для этой цели, чтобы можно было проверить только одну из них в группе. В вашем коде все переключатели добавляются в один и тот же контейнер flowLayoutPanel1, поэтому все они принадлежат одной и той же группе.

Чтобы иметь возможность ответить на каждый вопрос отдельно, создайте для него элемент контейнера и поместите вопрос и все переключатели для ответов в этом элементе контейнера. См. Ответы в следующем: Группировка радиокнопок в Windows Forms

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...