Winfrom有动态调用用户控件问题

pipiok 2012-07-24 09:58:02
本人最近遇到了个“难题”麻烦各位大侠帮忙看下。
在Winfrom中上面是一行菜单栏,然后根据所选的菜单动态的加载用户控件到下面指定的显示区域。在根据所选的操作操作用户控件。
部分代码如下:
动态加载用户控件
private void rbTbDBRegister_Click(object sender, EventArgs e)
{
MyUserControl.UcDBServertb Uc_DBServer = new MyUserControl.UcDBServertb();
this.pnlMain.Controls.Clear();
this.pnlMain.Controls.Add(Uc_DBServer);

Uc_DBServer.Dock = DockStyle.Fill;
}
操作用户控件
private void rbAddRow_Click(object sender, EventArgs e)
{
if (pnlMain.HasChildren == false)
{
MessageBox.Show("请选择要操作的表!");
return;
}

foreach (var item in pnlMain.Controls)
{
switch (item.GetType().Name.ToString())
{
case "UcDBServertb":

MyUserControl.UcDBServertb Uc_DBServer = new MyUserControl.UcDBServertb();
Uc_DBServer.AddData(); //调用用户控件中的方法
break;

default:
break;
}

}

}
用户控件中的方法:
public void AddData()
{
}
现在的问题是:调用用户控件中方法不起作用(调式能进入用户控件方法中)。求解!!!
...全文
258 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
pipiok 2012-07-26
  • 打赏
  • 举报
回复
感谢各位的热心。不过最后我自己弄出来了。改变了下加载用户控件的方法
private MyUserControl.UcDBServertb ucDBServertb1; private void rbTbDBRegister_Click(object sender, EventArgs e)
{
if (pnlMain.HasChildren == false || pnlMain.Controls[0].Name.ToString() != "UcDBServertb")
{
this.pnlMain.Controls.Clear();
this.ucDBServertb1 = new UcDBServertb();
this.pnlMain.Controls.Add(this.ucDBServertb1);
ucDBServertb1.Dock = DockStyle.Fill;
}
}
再次谢谢各位了
pipiok 2012-07-25
  • 打赏
  • 举报
回复
楼上大哥,能提供下你说的反射动态生成类的对象的代码吗?感激不尽
pipiok 2012-07-25
  • 打赏
  • 举报
回复
能提供下代码吗?感激不尽
takumiwu 2012-07-25
  • 打赏
  • 举报
回复
这个是有办法的
通过反射动态生成类的对象就ok了
pipiok 2012-07-25
  • 打赏
  • 举报
回复
rbAddRow_Click
这个主窗体的事件,他是用来调用用户控件中的方法。也就是说这个方法同事会调用多个用户控件中的方法
chinnsyuutou 2012-07-25
  • 打赏
  • 举报
回复
rbAddRow_Click
这个方法和用户控件的事件绑定了吗?
pipiok 2012-07-25
  • 打赏
  • 举报
回复
自己顶下,别沉了
yang2948443 2012-07-25
  • 打赏
  • 举报
回复
这确实,不会的说的再多都觉得很空,有代码才是实在的。
独孤侠客 2012-07-24
  • 打赏
  • 举报
回复
我觉得你可以用control的visible方法来实现动态加载控件
pipiok 2012-07-24
  • 打赏
  • 举报
回复
自己顶下,别沉了

111,117

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧