2011-12-03 6 views
1

このコードに問題があります。すべてのクラスhereが見つかります。主なアプリケーションはisMDIcontainer = true;WinformアプリケーションのMDIparentオブジェクト参照がオブジェクトのインスタンスに設定されていません

私は、コードのこの部分でエラーを受信に設定されている

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

:私は、アプリケーションを起動し、私は新しいフォームを開く場合

は、私はこのエラーが表示されます。

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が間違っているため(誤ったファイル名またはパス)、がnullを返す可能性があります。

それはnullを返すの結果はform.MdiParentNullReferenceExceptionになりますようform変数はnull、その上に任意のメンバーへのアクセス(であるということである。

は、ファイル名が正しく、ファイルが存在することを確認してください

+0

はい、問題は既にインストールされているプラ​​グインであり、パスが私と異なっていたことです。 – Jasper

関連する問題