2011-12-03 49 views
1

我對此代碼有問題。你可以找到所有類別hereWinform應用程序中的MDIparent返回對象引用未設置爲對象的實例

如果我啓動應用程序,我想開一個新的窗體我收到此錯誤:

NullReferenceException : Object reference not set to an instance of an object.

主要的應用程序設置爲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有人說,這個錯誤可能會以這種方式來解決:

You must declare property system.window.form parentForm in interface

,但我不知道如何。

回答

1

由於FileName錯誤(文件名或路徑不正確),機會很好,CreateInstance正在返回null

它返回一個null的結果是form變量是null和它的任何成員訪問(如form.MdiParent會導致NullReferenceException

確保文件名是正確的,該文件存在在搜索的路徑上

+0

是的,問題是已經有一個安裝的插件,路徑與我的不同。 – Jasper

相關問題