首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

string类型转换成控件部类

2012-10-05 
string类型转换成控件类型如题下面是我源码DataTable menuDt menuBll.GetList(sql).Tables[0]KryptonPa

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……

热点排行