使用OpenFileDialog时出现CallbackOnCollectedDelegate错误

时间:2013-09-22 10:59:17

标签: c# .net delegates openfiledialog

我想在我的应用程序中添加一个OpenFileDialog。该对话框按预期打开,但一旦关闭对话框,我就会收到有关“CallbackOnCollectedDelegate”的错误消息。我在网上查找了OpenFileDialog示例,但它们与我的代码没什么不同。此外,我在stackoverflow上查看了“CallbackOnCollectedDelegate”错误的解决方案,但遗憾的是我没有看到我的代码失败的地方。 我正在使用类似的结构在我的程序中打开其他自己创建的对话框 - 没有问题。这是我第一次尝试使用预定义的Dialog,也许我在做一些奇怪的事情?

OpenFileDialog Dialog_OpenFile;

private void OpenFileButton_Click(object sender, EventArgs e) //open file
{
  if (Dialog_OpenFile == null) //only create once
    {
        Dialog_OpenFile = new OpenFileDialog();
        Dialog_OpenFile.InitialDirectory = ".";
        Dialog_OpenFile.RestoreDirectory = false;
        Dialog_OpenFile.Multiselect = false;
        Dialog_OpenFile.Filter = "OpenOffice (*.ods)|*.ods|Microsoft Excel (*.xlsx)|*.xlsx";
        Dialog_OpenFile.FilterIndex = 2; 
    }

    DialogResult status = Dialog_OpenFile.ShowDialog();
    if (status == DialogResult.OK) { ...do something... }
}

我添加了错误消息(不幸的是德语,但最重要的部分应该是可以理解的):

  

DerAssistentfürverwaltetes调试   “”CallbackOnCollectedDelegate“”帽子问题在于   “”C:\ Users ... \ Visual Studio   2013 \项目\ MYPROG \ MYPROG \ BIN \调试\ myprog.vshost.exe “”   festgestellt。 ZusätzlicheInformationen:Fürdenvon der Garbage   收集gesammelten Delegaten vom Typ   “System.Windows.Forms的!System.Windows.Forms.NativeMethods +的WndProc ::调用”   wurdeeinRückrufdurchgeführt。 DieskannAnwendungsabstürze,   Datenbeschädigungund-verlust zur Folge haben。 BeimÜbergebenvon   委托代理人代理müssendieDelegaten von der   verwalteten Anwendung beibehalten werden,bis sichergestellt ist,dass   sie nie aufgerufen werden。

     

Ein Ausnahmefehler des Typs“System.NullReferenceException”ist in   System.Windows.Forms.dll aufgetreten。 ZusätzlicheInformationen:Der   Objektverweis wurde nicht auf eine Objektinstanz festgelegt。

     

“myprog.vshost.exe”(CLR v4.0.30319:myprog.vshost.exe):   “C:\ WINDOWS \ Microsoft.Net \装配\ GAC_MSIL \ System.Configuration \ v4.0_4.0.0.0__b03f5f7f11d50a3a \ System.Configuration.dll”   geladen。 Das Laden von Symbolenwurdeübersprungen。 Das Modul ist   optimiert,und die Debugoption“Nur eigenen Code”ist aktiviert。达斯   程序“[3452] myprog.vshost.exe”wurde mit Code 0(0x0)wasdet。

0 个答案:

没有答案