读书人

怎么添加指定类型的控件

发布时间: 2012-06-21 13:42:41 作者: rapoo

如何添加指定类型的控件?
假设有一窗体Form1
在代码中定义了一个字符串变更str
假设我给str赋值为"textbox"
在单击窗体时窗体中就添加了一个新的textbox控件
假设我再给str赋值为"Lable"
在单击窗体时窗体中就添加一个新的Lable控件

一般代码我会,我就是不会利用字符串"TextBox"定义出一个新的TextBox控件。代码怎么写??

[解决办法]

C# code
using System.Reflection;namespace WindowsFormsApplication1{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private void button1_Click(object sender, EventArgs e)        {            var controlName = textBox1.Text;            if (controlName == string.Empty)            {                MessageBox.Show("Control Name Can Not Be Empty");                return;            }            var asmName = "System.Windows.Forms";//窗体控件的命名控件            var asm = Assembly.GetAssembly(typeof(Form));//载入Form控件所在的程序集            var type = asm.GetType(asmName + "." + controlName);//拼接控件的全名            if (type == null)//类型如果没有找到则返回            {                MessageBox.Show("Control Name Not Found!");                return;            }            var controlCtorMethod = type.GetConstructor(Type.EmptyTypes);//获取构造函数(这边我假设都是无参构造函数)            var control = controlCtorMethod.Invoke(null);(调用构造函数生成一个实例)            this.Controls.Add(control as Control);(添加到窗体上面,本人比较懒没有做具体的位置安放,重复添加会覆盖之前添加的控件)            return;        }    }} 

读书人网 >VB Dotnet

热点推荐