问题描述
- C#开发 new form3时报错 “.Form3”不包含采用“0”参数的构造函数。
-
form2代码:
private void 缓冲区分析ToolStripMenuItem_Click(object sender, EventArgs e)
{
Form t = new Form3();
t.ShowDialog();
}
fom3部分代码:
public partial class Form3 : Form
{
public Form3(IHookHelper hookHelper)
{
InitializeComponent();
m_hookHelper=hookHelper;
MapControl=m_hookHelper as IMapControl4;
}
解决方案
你看看你form3里的构造函数是怎么样的
解决方案二:
有参数你就传参数,你要不传参数的话,你就在写一个不带参数的狗杂函数
解决方案三:
IHookHelper hookHelper 加上这个参数
Form t = new Form3(_hookHelper);
t.ShowDialog();
解决方案四:
public Form3(IHookHelper hookHelper)
Form3的构造函数是有参数的,应该是new Form3(这里需要传一个继承IHookHelper的类的实例)
解决方案五:
public Form3(IHookHelper hookHelper)
{
InitializeComponent();
m_hookHelper=hookHelper;
MapControl=m_hookHelper as IMapControl4;
}
以上这段代码是从你的提问中摘抄的。
从中可以看出,Form3的构造函数中,还需要一个IHookHelper类型的参数,至于这个IHookHelper类型是什么,做什么用的,你还要再研究一下。
如果感觉这个IHookHelper没有用,那么你就自己再写一个Form3的构造函数,并将原来的From(IHookHelper hookHelper)修改,如下:
public Form3()
{
InitializeComponent();
}
public Form3(IHookHelper hookHelper):base()
{
m_hookHelper=hookHelper;
MapControl=m_hookHelper as IMapControl4;
}
这样你便写了一个无参数的Form3构造函数,就可以直接new Form3 了。
解决方案六:
给form3这一个不带参数的构造函数就行了