| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3684 人关注过本帖, 1 人收藏
标题:利用反射动态创建控件,且修改其属性.
只看楼主 加入收藏
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
结帖率:78.95%
收藏(1)
 问题点数:0 回复次数:6 
利用反射动态创建控件,且修改其属性.
WindowsFormsApplication2.rar (50.91 KB)
源码:
运行效果:

图片附件: 游客没有浏览图片的权限,请 登录注册


程序代码:
using System;
using System.Collections.Generic;
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);
            }
        }
        
    }
}

收到的鲜花
  • 小仙2008-11-05 20:29 送鲜花  49朵  
  • 野比2009-06-10 08:56 送鲜花  50朵   附言:支持下
搜索更多相关主题的帖子: 反射 
2008-08-22 09:08
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
收藏
得分:0 
好少人看这方面的内容么...想交流下都无人...

/images/2011/147787/2011051411021524.jpg" border="0" />
2008-08-22 12:48
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
收藏
得分:0 
建议版主把我这贴加精.

/images/2011/147787/2011051411021524.jpg" border="0" />
2008-11-04 13:45
myemail1983
Rank: 2
来 自:南京
等 级:新手上路
威 望:3
帖 子:256
专家分:0
注 册:2008-7-27
收藏
得分:0 
有时间会研究的,收藏了,
最近太累了

寻找学习的动力,承接小型程序设计,呵呵,为了激励自己学习下。
虽然做不到无私,但会学着去帮助别人
2008-11-05 22:03
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
收藏
得分:0 
不顶给大家看看对不起大家

/images/2011/147787/2011051411021524.jpg" border="0" />
2010-04-28 19:39
autouser
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-11-3
收藏
得分:0 
动态创建控件的时候,要注意:在创建的控件的时候,不会生成控件句柄,除非Load的时候
2010-11-03 18:41
cqzxw111
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-8-6
收藏
得分:0 
正在找,谢谢!
2013-03-10 11:40
快速回复:利用反射动态创建控件,且修改其属性.
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.080448 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved