2009-06-30 9 views
0

Windowsフォームプログラムを実行しているときに問題が発生しています。System.TypeLoadException System.Windows.Forms.OpenFileDialog(C#)

このプログラムでは、クリックするたびにOpenFileDialogのShowDialog()を呼び出すボタンがあります。

public partial class MyProgram : Form 
{ 
    private Button myButton; 
    private OpenFileDialog openFD; 
    private string filePath; 
    public MyProgram() 
    { 
    InitializeComponent(); 
    myButton = new Button(); 
    openFD = new OpenFileDialog(); 
    filePath = string.Empty; 
    myButton.Text = "Browse"; 
    myButton.Click += new EventHandler(ShowOpenDialog); 
    } 
    private ShowOpenDialog(object sender, EventArgs e) 
    { 
    if(openFD.ShowDialog() == DialogResult.OK) // Here 
    { 
     filePath = openFD.FileName; 
    } 
    } 
}

しかし、私は、私は、「ブラウズ」(myButtonという)ボタンをクリックしたプログラム、毎回を実行したとき、私は「MYPROGRAMは、問題が発生したため、私たちは不便をおかけして申し訳ありません。終了する必要があります。」ですエラー。 「このエラーレポートにはどのようなデータが含まれていますか?」をクリックしたときリンクには、エラー署名が含まれています

EventType : clr20r3  P1 : myprogram.exe  P2 : 1.0.0.0  P3 : 4a49b0bf 
P4 : system.windows.forms  P5 : 2.0.0.0  P6 : 4889dee7  P7 : 188f  
P8 : 32  P9 : system.typeloadexception

ご存知ですか?

答えて

0

MSDNによると、TypeLoadExceptionはアセンブリから型をロードできないことを示します。

適切なバージョンのWinFormsがインストールされていないと思います。どのバージョンの.NETとWinFormsを使用しようとしていますか?

しかし、最も基本的な解決策は、おそらく.NETフレームワークを再インストールすることです。

+0

しかしOpenFileDialogを使用する他の.NETアプリケーションを実行しても問題はありません。 .NET Framework 1.1,2.0 SP2、3.0 SP2、および3.5 SP1がインストールされています。 Microsoft Visual C#2008 Express EditionをIDEとして使用します。 WinFormsのバージョンを取得するには? –

+0

追加情報:プロジェクトのプロパティでターゲットフレームワークとして.NET Framework 2.0を選択しました –

+0

@djzmo Winformsのバージョンを取得するには、ソリューションエクスプローラでReferences項目を展開し、System.Windows.Formsを右クリックして[プロパティ"しかし、私のマシンでコードを実行したときにコードが動作したので、おそらくあなたの最後にはDLLの地獄の問題です。 – MiffTheFox

関連する問題