| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付买域名,送MP3、MP4
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY买空间,免费送域名(厦门中资源)
共有 360 人关注过本帖
标题:利用反射动态创建控件,且修改其属性.
收藏  订阅  推荐  打印 
本主题由 小仙 于 2008-11-5 20:29 提升
ioriliao
Rank: 12Rank: 12Rank: 12
来自:广东
等级:贵宾
威望:29
帖子:2122
积分:23963
注册:2006-11-30
利用反射动态创建控件,且修改其属性.

源码:
运行效果:
程序代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Reflection;
//using System.Data;
namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
        DataTable dt = new DataTable();
        Assembly asm;
        private void Form1_Activated(object sender, EventArgs e)
        {
            fillDgv(toolStripTextBox1.Text);
        }

        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                splitContainer3.Panel2.Controls.Clear();
                System.Type t = asm.GetType((string)dataGridView1.CurrentRow.Cells[0].Value);
                object obj = Activator.CreateInstance(t);
                propertyGrid1.SelectedObject = obj;
                Control c = obj as Control;
                splitContainer3.Panel2.Controls.Add(c);
            }
            catch
            {
            }
        }

        private void toolStripTextBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == (char)Keys.Enter)
                fillDgv(toolStripTextBox1.Text);
        }

        private void fillDgv(string assemblyPath)
        {
            dataGridView1.Rows.Clear();
            asm = Assembly.LoadFrom(assemblyPath);
            System.Type[] ts = asm.GetTypes();
            foreach (System.Type t in ts)
            {
                dataGridView1.Rows.Add(t.FullName);
            }
        }
        
    }
}
附件: 只有本站会员才能下载或查看附件,请您 登录注册
搜索更多相关主题的帖子: 反射  
本帖最近评分记录
  • 小仙 积分+49 2008-11-5 20:29
2008-8-22 09:08
ioriliao
Rank: 12Rank: 12Rank: 12
来自:广东
等级:贵宾
威望:29
帖子:2122
积分:23963
注册:2006-11-30

好少人看这方面的内容么...想交流下都无人...

105本高清PDF电子书 :http://www.cnblogs.com/ioriliao/archive/2008/10/20/1315343.html
VB爱好者1号群:31556786
2008-8-22 12:48
ioriliao
Rank: 12Rank: 12Rank: 12
来自:广东
等级:贵宾
威望:29
帖子:2122
积分:23963
注册:2006-11-30

建议版主把我这贴加精.

105本高清PDF电子书 :http://www.cnblogs.com/ioriliao/archive/2008/10/20/1315343.html
VB爱好者1号群:31556786
2008-11-4 13:45
myemail1983
Rank: 3Rank: 3
来自:南京
等级:中级会员
威望:3
帖子:224
积分:2544
注册:2008-7-27

有时间会研究的,收藏了,
最近太累了

寻找学习的动力,承接小型程序设计,呵呵,为了激励自己学习下。
虽然做不到无私,但会学着去帮助别人
2008-11-5 22:03
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.055681 second(s), 11 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved