哪种控件最适合在Windows窗体应用程序中添加文本和单选按钮

时间:2015-10-15 10:24:06

标签: c# winforms

我想显示问题和选项,并且对于每个选项都应该添加单选按钮,并且问题编号应该在数字圆圈中。建议我怎么做这个

        public Form2(string paperid)
    {
        InitializeComponent();

        if (paperid != "")
        {
            var papers = doc.Descendants("paper");
            foreach (var paper in papers)
            {
                if (paper.Attribute("id").Value == paperid)
                {
                    var questions = paper.Descendants("question");
                    foreach (var question in questions)
                    {
                        Label ques = new Label();
                        ques.Text = question.Attribute("ques").Value;
                        this.Controls.Add(ques);

                        var options = question.Descendants("option");
                        var i = 0;
                        foreach (var option in options)
                        {
                            RadioButton rdbtn = new RadioButton();
                            rdbtn.Name = "rdbtn" + i;
                            this.Controls.Add(rdbtn);
                            rdbtn.Text = option.Value;
                            i++;

                        }

                    }
                    break;
                }
            }


        }

    }

2 个答案:

答案 0 :(得分:0)

在评论中,您似乎不知道Control是什么。每个人都在告诉您使用LabelRadioButton,所以就这样做。

在VS设计器中,从工具箱中选择Label并将其拖到表单中。改变它的一些属性,和BOOM!你已经完成了它!

在评论中你说你需要"存储" Label中的文字。嗯,在某些情况下这可能是错误的。您将文本存储在字符串中,而不是标签。后者显示文本。

您还提到了如何获取文本,即From XML。但这无关紧要,您只需将XML中的文本存储在字符串中,我们就可以将其称为text。然后更改标签的Text属性。

label.Text = text;

现在您的标签将显示文字。

修改

让我假设您没有使用VisualStudio。您也可以使用代码执行此操作。首先,您需要创建Form

Form form = new Form();
form.Show();
//set properties of the form
Label label = new Label();
//set properties of the label. E.g. Text, width, position etc
form.Controls.Add(label);

因此,在您创建标签后,您可以在编辑之前使用代码设置文本,现在您的标签应该出现在表单上。

答案 1 :(得分:0)

 private void button1_Click(object sender, EventArgs e)
    {
        if (id != "")
        {
            var papers = doc.Descendants("paper");
            foreach (var paper in papers)
            {
                if (paper.Attribute("id").Value == id)
                {
                    var questions = paper.Descendants("question");
                    var j = 1;
                    foreach (var question in questions)
                    {
                       GroupBox Ques&Ansoptn = new GroupBox();
                       Ques&Ansoptn.Size = new System.Drawing.Size(720, 120);
                       Ques&Ansoptn.Text = question.Attribute("ques").Value;
                       Ques&Ansoptn.Location = new Point(15, 40*j);
                       Ques&Ansoptn.Font = new Font("Microsoft Sans Serif", 10);
                        this.Controls.Add(Ques&Ansoptn);
                        var options = question.Descendants("option");
                        var i =1;
                        foreach (var option in options)
                        {
                            RadioButton rdbtn = new RadioButton();
                            rdbtn.Size = new System.Drawing.Size(400, 20);
                            rdbtn.Location = new Point(20, 20 * i);
                            rdbtn.Font = new Font("Microsoft Sans Serif", 10);
                            rdbtn.Text = option.Value;
                            Ques&Ansoptn.Controls.Add(rdbtn);
                            i++;
                        }
                        j = j+3;
                    }
                    break;
                }
            }


        }
    }