Simpler Form Aufruf -> Exception

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von ChrizzleWhizzle.

    Simpler Form Aufruf -> Exception

    Hallo zusammen :)

    Ich bin gerade am verzweifeln :S
    Iwie will ein simpler Form-Aufruf nicht funktionieren, immer wenn die Funktion InitializeComponent() aufgerufen wird bekomme ich folgende Exception

    Spoiler anzeigen
    System.InvalidOperationException wurde nicht behandelt.
    Message=Fehler beim Erstellen des Formulars. Weitere Informationen finden Sie in Exception.InnerException. Fehler: Der Index lag außerhalb des Bereichs. Er muss nicht negativ und kleiner als die Auflistung sein.
    Parametername: index.
    Source=CCDBMain
    StackTrace:
    bei CCDBMain.My.MyProject.MyForms.Create__Instance__[T](T Instance) in 17d14f5c-a337-4978-8281-53493378c1071.vb:Zeile 190.
    bei CCDBMain.My.MyProject.MyForms.get_Form_101_SYS_Start()
    bei CCDBMain.Form_101_SYS_Start.Main() in C:\Projects\(CAPCAD) CCDB\CCDBMain\CCDBMain\Form_101_SYS_Start.Designer.vb:Zeile 0.
    bei System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
    bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
    bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
    bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
    bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
    bei System.Threading.ThreadHelper.ThreadStart()
    InnerException: System.ArgumentOutOfRangeException
    Message=Der Index lag außerhalb des Bereichs. Er muss nicht negativ und kleiner als die Auflistung sein.
    Parametername: index
    Source=mscorlib
    ParamName=index
    StackTrace:
    bei System.Collections.ArrayList.get_Item(Int32 index)
    bei System.Windows.Forms.DataGridViewRowCollection.SharedRow(Int32 rowIndex)
    bei System.Windows.Forms.DataGridViewRowCollection.get_Item(Int32 index)
    bei CCDBSV.Form_303_DDS_SVEinsatz_New.DataGridViewEinsaetze_CellValueChanged(Object sender, DataGridViewCellEventArgs e) in C:\Projects\(CAPCAD) CCDB\CCDBSV\CCDBSV\Form_303_DDS_SVEinsatz_New.vb:Zeile 382.
    bei System.Windows.Forms.DataGridView.OnCellValueChanged(DataGridViewCellEventArgs e)
    bei System.Windows.Forms.DataGridView.OnCellValueChangedInternal(DataGridViewCellEventArgs e)
    bei System.Windows.Forms.DataGridViewElement.RaiseCellValueChanged(DataGridViewCellEventArgs e)
    bei System.Windows.Forms.DataGridViewColumnHeaderCell.SetValue(Int32 rowIndex, Object value)
    bei System.Windows.Forms.DataGridViewColumn.set_HeaderText(String value)
    bei CCDBSV.Form_303_DDS_SVEinsatz_New.InitializeComponent() in C:\Projects\(CAPCAD) CCDB\CCDBSV\CCDBSV\Form_303_DDS_SVEinsatz_New.Designer.vb:Zeile 442.
    bei CCDBSV.Form_303_DDS_SVEinsatz_New..ctor(Form aufrForm) in C:\Projects\(CAPCAD) CCDB\CCDBSV\CCDBSV\Form_303_DDS_SVEinsatz_New.vb:Zeile 43.
    bei CCDBSV.Form_301_DDS_SV.ButtonEditSupEinsaetze_Click(Object sender, EventArgs e) in C:\Projects\(CAPCAD) CCDB\CCDBSV\CCDBSV\Form_301_DDS_SV.vb:Zeile 3188.
    bei System.Windows.Forms.Control.OnClick(EventArgs e)
    bei System.Windows.Forms.Button.OnClick(EventArgs e)
    bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
    bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    bei System.Windows.Forms.Control.WndProc(Message& m)
    bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
    bei System.Windows.Forms.Button.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(Int32 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 CCDBSV.Form_201_UEB_Servicevertraege.ButtonOpenSV_Click(Object sender, EventArgs e) in C:\Projects\(CAPCAD) CCDB\CCDBSV\CCDBSV\Form_201_UEB_Servicevertraege.vb:Zeile 175.
    bei System.Windows.Forms.Control.OnClick(EventArgs e)
    bei System.Windows.Forms.Button.OnClick(EventArgs e)
    bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
    bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    bei System.Windows.Forms.Control.WndProc(Message& m)
    bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
    bei System.Windows.Forms.Button.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(Int32 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 CCDBSV.Form_101_MNU_Main.ButtonSV_Click(Object sender, EventArgs e) in C:\Projects\(CAPCAD) CCDB\CCDBSV\CCDBSV\Form_101_MNU_Main.vb:Zeile 59.
    bei System.Windows.Forms.Control.OnClick(EventArgs e)
    bei System.Windows.Forms.Button.OnClick(EventArgs e)
    bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
    bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    bei System.Windows.Forms.Control.WndProc(Message& m)
    bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
    bei System.Windows.Forms.Button.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(Int32 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 CCDBMain.Form_102_MNU_Main.ButtonSupport_Click(Object sender, EventArgs e) in C:\Projects\(CAPCAD) CCDB\CCDBMain\CCDBMain\Form_102_MNU_Main.vb:Zeile 376.
    bei System.Windows.Forms.Control.OnClick(EventArgs e)
    bei System.Windows.Forms.Button.OnClick(EventArgs e)
    bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
    bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    bei System.Windows.Forms.Control.WndProc(Message& m)
    bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
    bei System.Windows.Forms.Button.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(Int32 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 CCDBMain.Form_101_SYS_Start..ctor() in C:\Projects\(CAPCAD) CCDB\CCDBMain\CCDBMain\Form_101_SYS_Start.vb:Zeile 171.
    InnerException:


    Ich habe auch schon alle Controls in der Form geprüft und konnte meines Erachtens keine Fehler vorfinden :/

    Der Konstruktor ist auch simpel gehalten

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Sub New(ByVal aufrForm As System.Windows.Forms.Form)
    2. Me.FormLoading = True
    3. ' Dieser Aufruf ist für den Designer erforderlich.
    4. InitializeComponent()
    5. ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
    6. Me.aufrufendeForm = aufrForm
    7. Me.DSChanged = False
    8. End Sub


    Hat hier jemand einen kleinen Tipp oder kann den Fehler bereits ausmachen bzw näher eingrenzen? :)

    MfG ChrizzleWhizzle
    Me.FormLoading = True
    Me.aufrufendeForm = aufrForm
    Me.DSChanged = False

    Du kannst auf Variablen der Form wahrscheinlich nicht zugreifen, bevor sie überhaupt erstellt wurde. Halt dich aus dem Konstruktor erstmal raus und setze deine Variablen im Form.Load oder Form.Shown Event

    Skybird schrieb:

    Das sind ja Ubisoftmethoden hier !

    dann lösch die Form und erstell ne neue. Code und Controls kannst du ja rüber kopieren.

    VB.NET-Quellcode

    1. ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.

    Wieso hast du ne Initialisierung davor?

    Skybird schrieb:

    Das sind ja Ubisoftmethoden hier !

    Setze in die Prozedur InitializeComponent() einen Haltepunkt (F9) und gehe diese Schritt für Schritt durch (F10).
    Wenn es dann knallt, kannst Du den Fehler eingrenzen.
    Wahrscheinlich musst Du ein Control anders konfigurieeren.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    ChrizzleWhizzle schrieb:

    immer wenn die Funktion InitializeComponent() aufgerufen wird bekomme ich folgende Exception


    In dem Codeschnippselchen, was Du oben angegeben hast ist nichts grundsätzlich falsch, der Fehler liegt also irgendwo im Kontext den wir nicht sehen. Sind formLoading, DSChanged, aufrufendeForm simple Properties oder machst Du irgendwas im SET-Teil ?

    Aus der Exception ist nur herauszulesen dass er beim Anlegen Probleme hat (mscorlib) und der Index auf Dein Datagridview ausserhalb des grünen Bereichs liegt. Also machst Du auch hier irgendetwas Unzulässiges was wir nicht sehen können.

    Das einfachste wäre , wenn Du Dir einen Breakpoint in der Designer.vb Deiner problematischen Form auf die Methode InitializeComponent setzt, und danach per Einzelschritt bis zur Exception weitermachst. Dann kannst Du das Problem genau analysieren.

    Damit der Debugger auch wirklich am Breakpoint stoppt, solltest Du das <System.Diagnostics.DebuggerStepThrough()> _ in der Designer.vb temporär auskommentieren.

    Und nur zur Info: formLoading ist missverstänlich: die Form wird hier deklariert, geladen wird sie erst beim Anzeigen

    @Rod so kurz und bündig kann man das natürlich auch sagen ;)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Kangaroo“ ()

    Kangaroo schrieb:

    Damit der Debugger auch wirklich am Breakpoint stoppt, solltest Du das <System.Diagnostics.DebuggerStepThrough()> _ in der Designer.vb temporär auskommentieren.

    Das ist nicht erforderlich, der BreakPoint hat höhere Priorität:
    Bilder
    • InitializeComponent.jpg

      10,86 kB, 411×66, 113 mal angesehen
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @Kangaroo: Ich auch, aber ich hab da keine Probleme.
    Also, lieber TE, wenn es klappt, ist gut. Wenn nicht, kommentiere die Zeile aus oder finde die entsprechende Einstellung und poste siew bitte.
    Was für eine Studio-Version hast Du?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!