没有为该对象定义无参数的构造函数

年轻的程序员小唐 2019-10-10 04:23:07

var form = tabControl1.SelectedTab.Controls.Find(tabControl1.SelectedTab.Name, true)[0] as Form;
if (form == null)
return;
var pform = form.Parent;
pform.Controls.Clear();
var res = Activator.CreateInstance(form.GetType()) as Form;
if (res == null) return;
res.TopLevel = false;
res.Show();
pform.Controls.Add(res);

请问这是为啥,没有用过Activator.CreateInstance(form.GetType()) as Form;

代码原文链接:https://blog.csdn.net/haby0215/article/details/47373139
...全文
150 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
暂时有另一个方法解决我切换页面刷新窗体的需求了,谢谢各位
  • 打赏
  • 举报
回复
引用 5 楼 by_封爱 的回复:
人家不是说了无参啊..

你在写一个重载吧


public FormCallGroup()
{

}

我写在原来的FormCallGroup的构造函数下面,然后就刷新出来的窗体就是一个空的了。。。
Dear200892 2019-10-10
  • 打赏
  • 举报
回复
引用 4 楼 weixin_44246797 的回复:
[quote=引用 3 楼 Dear200892 的回复:]
Activator.CreateInstance(Type, obj) 用构造函数动态生成对象
by_封爱 版主 2019-10-10
  • 打赏
  • 举报
回复
人家不是说了无参啊.. 你在写一个重载吧

public FormCallGroup()
{

}
  • 打赏
  • 举报
回复
引用 3 楼 Dear200892 的回复:
object[] obj = new object[2] {"zhangsan","23"};
object o = Activator.CreateInstance(Type, obj);
((XClass)o).Show();

大哥你又来了,我没见过这个方法,也是刚搜到的所以不懂它啥意思
Dear200892 2019-10-10
  • 打赏
  • 举报
回复
object[] obj = new object[2] {"zhangsan","23"}; object o = Activator.CreateInstance(Type, obj); ((XClass)o).Show();
  • 打赏
  • 举报
回复
引用 1 楼 by_封爱 的回复:
就这样规定的... 你想反射class的话 就得写..好像没别的办法..

窗体的 我没测试过. 普通的model 如果反射的话 是必须要


public class a
{
public a()
{
}
}

得这样.

意思是我要给Form写一个构造函数?
我的Form里面有
public FormCallGroup(DataApplication data,string key)
{
}
这个不算吗
by_封爱 版主 2019-10-10
  • 打赏
  • 举报
回复
就这样规定的... 你想反射class的话 就得写..好像没别的办法.. 窗体的 我没测试过. 普通的model 如果反射的话 是必须要

public class a
{
   public a()
   {
   }
}
得这样.

111,092

社区成员

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

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

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