我想显示问题和选项,并且对于每个选项都应该添加单选按钮,并且问题编号应该在数字圆圈中。建议我怎么做这个
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;
}
}
}
}
答案 0 :(得分:0)
在评论中,您似乎不知道Control
是什么。每个人都在告诉您使用Label
和RadioButton
,所以就这样做。
在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;
}
}
}
}