Forms.ShowDialog中的访问冲突异常

时间:2014-03-13 13:58:46

标签: c# winforms

每次调用我创建的表单的AccessViolationException方法时,我都会得到ShowDialog()。仅当CheckkedListBox moduleOperationsBox包含元素时才会出现此问题。还有其他ListBox类型的元素可以正常工作。

这里是相应的代码部分:

ShowDialog()调用:

public new System.Windows.Forms.DialogResult ShowDialog()
{
    foreach(KeyValuePair<string, string> foo in obsoleteOperations)
    {
        moduleOperationsBox.Items.Add(foo);
    }                   
    return base.ShowDialog();
}

构造函数的相关部分:

public ModuleSyncDialog(EA.Repository rep)
{
    InitializeComponent();
    obsoleteOperations = new List<KeyValuePair<string, string>>();

    this.moduleOperationsBox.DisplayMember = "Key";
    this.moduleOperationsBox.ValueMember = "Value";                   
}

填写清单的方法:

public void addModuleOperation(string name, string guid)
{
    obsoleteOperations.Add(new KeyValuePair<string, string>(name,guid));
}

和StackTrace:

   bei System.Drawing.SafeNativeMethods.Gdip.GdipDrawRectangleI(HandleRef graphics, HandleRef pen, Int32 x, Int32 y, Int32 width, Int32 height)
   bei System.Drawing.Graphics.DrawRectangle(Pen pen, Int32 x, Int32 y, Int32 width, Int32 height)
   bei System.Windows.Forms.ControlPaint.DrawFlatCheckBox(Graphics graphics, Rectangle rectangle, Color foreground, Brush background, ButtonState state)
   bei System.Windows.Forms.ControlPaint.DrawFlatCheckBox(Graphics graphics, Rectangle rectangle, ButtonState state)
   bei System.Windows.Forms.ControlPaint.DrawCheckBox(Graphics graphics, Int32 x, Int32 y, Int32 width, Int32 height, ButtonState state)
   bei System.Windows.Forms.ControlPaint.DrawCheckBox(Graphics graphics, Rectangle rectangle, ButtonState state)
   bei System.Windows.Forms.CheckedListBox.OnDrawItem(DrawItemEventArgs e)
   bei System.Windows.Forms.ListBox.WmReflectDrawItem(Message& m)
   bei System.Windows.Forms.ListBox.WndProc(Message& m)
   bei System.Windows.Forms.CheckedListBox.WndProc(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   bei System.Windows.Forms.UnsafeNativeMethods.SendMessage(HandleRef hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   bei System.Windows.Forms.Control.SendMessage(Int32 msg, IntPtr wparam, IntPtr lparam)
   bei System.Windows.Forms.Control.ReflectMessageInternal(IntPtr hWnd, Message& m)
   bei System.Windows.Forms.Control.WmOwnerDraw(Message& m)
   bei System.Windows.Forms.Control.WmDrawItem(Message& m)
   bei System.Windows.Forms.Control.WndProc(Message& m)
   bei System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   bei System.Windows.Forms.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   bei System.Windows.Forms.NativeWindow.DefWndProc(Message& m)
   bei System.Windows.Forms.Control.DefWndProc(Message& m)
   bei System.Windows.Forms.Control.WndProc(Message& m)
   bei System.Windows.Forms.ListBox.WndProc(Message& m)
   bei System.Windows.Forms.CheckedListBox.WndProc(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
   bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
   bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   bei System.Windows.Forms.Application.RunDialog(Form form)
   bei System.Windows.Forms.Form.ShowDialog(IWin32Window owner)
   bei System.Windows.Forms.Form.ShowDialog()
   bei ModelAssistant.ModuleSyncDialog.ShowDialog() in C:\Dokumente und Einstellungen\ostwal99\Eigene Dateien\EA_EXTENSIONS\EA_ADDIN\src\AEPAddIn\ModelAssistant\ModuleSyncDialog.designer.cs:Zeile 524.
   bei ModelAssistant.ModelAssistant.synchronizeInterface(Repository repository, Element eaInterface) in C:\Dokumente und Einstellungen\ostwal99\Eigene Dateien\EA_EXTENSIONS\EA_ADDIN\src\AEPAddIn\ModelAssistant\ModelAssistant.cs:Zeile 436.
   bei ModelAssistant.ModelAssistant.EA_OnNotifyContextItemModified(Repository repository, String guid, ObjectType ot) in C:\Dokumente und Einstellungen\ostwal99\Eigene Dateien\EA_EXTENSIONS\EA_ADDIN\src\AEPAddIn\ModelAssistant\ModelAssistant.cs:Zeile 188.
   bei AEPAddInHost.AEPAddInHost.EA_OnNotifyContextItemModified(Repository repository, String guid, ObjectType ot) in C:\Dokumente und Einstellungen\ostwal99\Eigene Dateien\EA_EXTENSIONS\EA_ADDIN\src\AEPAddIn\AEPAddInHost\AEPAddInHost.cs:Zeile 151.

它是在WindowsXP SP3,.Net Framework 4下用VS2010编译的。

如果您发布任何想法来解决问题或需要其他信息,那将非常好。

感谢。

0 个答案:

没有答案