我最初有一个带有多个选项的单选按钮。在选择中,我调用一个Web服务,它为我提供了一个问题列表和要为每个问题创建的组件类型(单选按钮,文本框,下拉列表等)。那么,如何根据服务响应动态创建.net winform控件呢?
示例服务响应:
{
question: 'Did you verify your account?',
Control: 'Radio Button',
Options: { 'Yes','No'}
}
答案 0 :(得分:0)
以下是一些如何以编程方式添加控件的示例。然后你只需要解析Web服务并基于数据添加控件
Label qs_label = new Label();
qs_label.Font = new Font("Arial", 12F, FontStyle.Regular);
qs_label.Size = new Size(150, 18);
qs_label.Text = item.ToString();
this.selectionPanel.Controls.Add(qs_label);
Label m_label = new Label();
m_label.Font = new Font("Arial", 12F, FontStyle.Regular);
m_label.Size = new Size(150, 18);
m_label.Text = "Maturity standard";
this.selectionPanel.Controls.Add(m_label);
Label c_label = new Label();
c_label.Font = new Font("Arial", 12F, FontStyle.Regular);
c_label.Size = new Size(170, 18);
c_label.Text = "Compliance standard";
this.selectionPanel.Controls.Add(c_label);
ComboBox m_input = new ComboBox();
m_input.Font = new Font("Arial", 12F, FontStyle.Regular);
m_input.Size = new Size(200, 22);
m_input.DropDownStyle = ComboBoxStyle.DropDownList;
this.selectionPanel.Controls.Add(m_input);
ComboBox c_input = new ComboBox();
c_input.Font = new Font("Arial", 12F, FontStyle.Regular);
c_input.Size = new Size(200, 22);
c_input.DropDownStyle = ComboBoxStyle.DropDownList;
this.selectionPanel.Controls.Add(c_input);
答案 1 :(得分:0)
this.Controls.Add(//Control you want to add);
你必须手动初始化它们(或以某种方式隐藏它们)。
其他解决方案是让它们不可见,并根据呼叫响应为每个解决方案显示真/假。