我的代码有问题。您可以找到所有课程here。
如果我启动应用程序并且我想打开一个新表单,则会收到此错误:
NullReferenceException:未将对象引用设置为对象的实例。
主应用程序设置为isMDIcontainer = true;
现在我收到了这段代码中的错误:
private void PluginClick(object sender, EventArgs e)
{
ToolStripMenuItem menu = (ToolStripMenuItem)sender;
Plugin.PluginForm form = ((PluginInfo)menu.Tag).CreateInstance();
form.MdiParent = this; // Here is thrown the error
form.Show();
}
Plugin.PluginForm
只是一份扩展表格。这是CreateIstance()
方法:
public PluginForm CreateInstance()
{
if (!File.Exists(FileName))
return null;
Assembly ass = Assembly.LoadFile(FileName);
foreach (Type type in ass.GetTypes())
{
if (type.BaseType == typeof(PluginForm))
{
return (PluginForm)Activator.CreateInstance(type);
}
}
return null;
}
在同一个sebsite中有人说这个错误可能会以这种方式解决:
您必须在接口
中声明属性system.window.form parentForm
但我不明白怎么做。
答案 0 :(得分:1)
CreateInstance
返回null
的可能性很高,因为FileName
错误(文件名或路径不正确)。
返回null
的结果是form
变量为null
且其上的任何成员访问权限(如form.MdiParent
中所示)将导致{{1} }}
确保文件名正确并且文件存在于搜索路径中。