每次调用我创建的表单的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编译的。
如果您发布任何想法来解决问题或需要其他信息,那将非常好。
感谢。