我想在我的应用程序中添加一个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。