日期:2014-05-18  浏览次数:20887 次

Winfrom有动态调用用户控件问题
本人最近遇到了个“难题”麻烦各位大侠帮忙看下。
在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()
  {
  }
现在的问题是:调用用户控件中方法不起作用(调式能进入用户控件方法中)。求解!!!

------解决方案--------------------
先托用户控件到窗体需要位置 拷贝代码 然后执行
或者设置不可见不行吗!!!