读书人

string类型转换成控件部类

发布时间: 2012-10-05 15:34:34 作者: rapoo

string类型转换成控件类型
如题
下面是我源码
DataTable menuDt = menuBll.GetList(sql).Tables[0];
KryptonPage page = new KryptonPage();
page.Text =
page.Name = menuDt.Rows[0]["m_cname"].ToString();
//page.Controls.Add(new Sert());//这里是对的

// 我想将读取出来的用户控件添加到page.Controls里面

// 如果我读取出来的值menuDt.Rows[0]["m_cFormPath"] 就是 Sert() 用户控件

page.Controls.Add(new Control(menuDt.Rows[0]["m_cFormPath"].ToString()));
// TODO:那怎么样能将上面一段代码和下面一段代码实现同样的功能
page.Controls.Add(new Sert());

Page_MainTable.Pages.Add(page);
Page_MainTable.SelectedIndex = Page_MainTable.Pages.Count - 1;


page.Controls.Add(new UserControl(menuDt.Rows[0]["m_cFormPath"].ToString()));
page.Controls.Add(new Sert());
// TODO:怎么能将这两段代码实现一样的效果



[解决办法]
你怎么保存的,你应该用序列化,保存流,然后再将流读出反序列化为组件
[解决办法]
最简单:
switch(menuDt.Rows[0]["m_cFormPath"])
{
case "Sert":
page.Controls.Add(new Sert());
break;
}

要不然就能过反射,根据Control的名称来生成Control,然后再添加
[解决办法]
http://blog.csdn.net/vvfish119/article/details/532246
[解决办法]

探讨

引用:
最简单:
switch(menuDt.Rows[0]["m_cFormPath"])
{
case "Sert":
page.Controls.Add(new Sert());
break;
}

要不然就能过反射,根据Control的名称来生成Control,然后再添加


目前我用的就是这个方法,但是考虑到以后每添加一个菜单都需要用Visua……

读书人网 >C#

热点推荐