c#中的动态控制

时间:2009-01-13 04:45:40

标签: c# winforms

我想创建一种带有文本框和复选框的4 x 3矩阵。元素是复选框还是文本框取决于数据库中的值。我希望它是动态的。什么是最好的开始方式?

// something like this but I need to fill in each elements of the matrix...
  private void CreateSpecificControl(string requestedType)
        {
                if (requestedType == "CheckBox")
                {

                    CheckBox control1 = new CheckBox();

                    control1.Click += new EventHandler(chk_CheckedChanged);

                   //TableLayout panel
                    layout.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25));
                    layout.Controls.Add(control1);

                }
                else
                {
                    Label control1 = new Label();

                    control1.Text = "Not a checkbox";
                    layout.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25));
                    layout.Controls.Add(control1);

                }

        }

1 个答案:

答案 0 :(得分:1)

使用usercontrol。请参阅此tutorial

在运行时,您可以更改User控件的内容。每个用户控件中都有一个Controls集合,您可以在其中添加或删除元素。例如,如果您想添加复选框,请执行以下操作:

myUserControl.Controls.Add(new CheckBox());

同样可以从此集合中删除元素,从而实现动态行为。