vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Sub wird beendet, ohne das ein Fehler auftritt 
Autor: Seek1
Datum: 10.05.17 07:48

Hallo Leute,

Möchte zwei Comboboxen mit Items füllen.
Hatte da noch nie Probleme.
Jetzt auf einmal wird ein Sub beendet, ohne das ein Fehler auftritt.

  Sub LoadBoxes()
        cob_ShopType.ResetText()
        cob_ShopType.Items.Clear()
        cob_ShopType.Items.Add("ShopType 1")
        cob_ShopType.SelectedIndex = 0 '<- Here it jump out of the sub
 
        cob_ShopVersion.ResetText()
        cob_ShopVersion.Items.Clear()
        cob_ShopVersion.Items.Add("1")
        cob_ShopVersion.Items.Add("2")
        cob_ShopVersion.SelectedIndex = 0
    End Sub
Sieht da einer einen Fehler?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Sub wird beendet, ohne das ein Fehler auftritt 
Autor: Manfred X
Datum: 10.05.17 09:10

Hallo!

Du bist Dir im Klaren darüber, daß beim Setzen der
"SelectedIndex"-Eigenschaft einer Combobox, Windows dieses
Ereignis meldet und Eventhandler in Deinem Projekt ggf.
darauf reagieren?

Wieso setzt Du keinen Try--Catch--Block in diese Routine,
um lokal eine Ausnahme-Meldung zu erhalten ???

Beitrag wurde zuletzt am 10.05.17 um 09:18:06 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Sub wird beendet, ohne das ein Fehler auftritt 
Autor: Seek1
Datum: 10.05.17 09:34

Der Eventhandler ist leer.
Deswegen kapier ich das Verhalten nicht.
Die Combobox ist nur für die konforme Auswahl eines Wertes.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Sub wird beendet, ohne das ein Fehler auftritt 
Autor: Manfred X
Datum: 10.05.17 10:35

Hallo!

Du machst es gern spannend?
Was sagt der Catcher dazu?
Sub LoadBoxes()
    Try
       With cob_shoptype
          .ResetText()
          .Items.Clear()
          .Items.Add("ShopType 1")
          .SelectedIndex = 0 '<- Here it jump out of the sub - I don't think so
       End With
 
       With cob_shopversion
           .ResetText()
           .Items.Clear()
           .Items.AddRange({"1", "2"})
           .SelectedIndex = 0
       End With
    Catch ex As Exception
       MessageBox.Show("LoadBoxes meldet: " & ex.Message)
    End Try
End Sub
Der Code ist in Ordnung!
Im Hintergrund kann vieles schief laufen ...
- die Combobox ist gesperrt oder gebunden
- das Trägerformular der Box kann nicht geladen werden
- die Handles-Klausel "SelectedIndex_Changed" ist falsch zugeordnet
- usw.

Beitrag wurde zuletzt am 10.05.17 um 10:36:31 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Sub wird beendet, ohne das ein Fehler auftritt 
Autor: Seek1
Datum: 10.05.17 11:05

Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.

Das kapier ich jetzt nicht ganz, weil itemcount ergibt ja einen Wert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Sub wird beendet, ohne das ein Fehler auftritt 
Autor: Manfred X
Datum: 10.05.17 11:25

Wo wird die Routine "LoadBoxes" aufgerufen?
Innerhalb des Formulars mit den beiden Comboboxen oder woanders?
(Vor dem "Sub" steht kein "Private".)
Ist diese Formularinstanz bereits initialisiert und geladen?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Sub wird beendet, ohne das ein Fehler auftritt 
Autor: Seek1
Datum: 10.05.17 11:35

LoadBoxes wird von Form_load aufgerufen.
Sollte aber auch mal auslösen, wenn eine Combobox verändert wird (derzeit noch nicht eingefügt).
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Sub wird beendet, ohne das ein Fehler auftritt 
Autor: Manfred X
Datum: 10.05.17 11:46

Setze einen Brechpunkt vor dem Aufruf dieser Routine in Form_Load
und prüfe beim Break, ob die beiden Comboboxen bereits instanziiert
sind (isnot nothing).
Falls das Formular mit dem Designer generiert wurde,
sollte "Initializecomponent" bereits gerufen worden sein.
Dort werden die Controls erstellt.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Sub wird beendet, ohne das ein Fehler auftritt 
Autor: Seek1
Datum: 10.05.17 11:49

Zitat: Das kapier ich jetzt nicht ganz, weil itemcount ergibt ja einen Wert.

Sie sind initialisiert und wurden die Zeilen davor mit Werten beschrieben ( .items.add)
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Sub wird beendet, ohne das ein Fehler auftritt 
Autor: Manfred X
Datum: 10.05.17 12:06

Welches Control verwendest Du als Combobox?
Handelt es sich um eine HTMLCombobox (TestTools.UI.Testing)?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Sub wird beendet, ohne das ein Fehler auftritt 
Autor: Seek1
Datum: 10.05.17 12:53

Nein, eine normale Combobox
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Sub wird beendet, ohne das ein Fehler auftritt 
Autor: Manfred X
Datum: 10.05.17 13:03

Mir ist nicht bekannt, daß eine Win.Forms-Combobox
eine "ItemCount"-Eigenschaft besitzt.
Ist "Items.Count" gemeint?
Und wo wird dieser Wert abgefragt?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Sub wird beendet, ohne das ein Fehler auftritt 
Autor: Seek1
Datum: 10.05.17 13:08

Der "Items.Count" Wert wird beim Debugen abgefragt.
Daher weis ich das die Box nicht leer ist.
Wenn ich den Fehler mit resume next übergehe, funktioniert das Sub so, wie es soll.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Sub wird beendet, ohne das ein Fehler auftritt 
Autor: Manfred X
Datum: 10.05.17 13:18

Ich kann ohne weitere Angaben nur wieder auf die Ereignisverarbeitung hinweisen.
Wenn der SelectedIndex-Eigenschaft ein Wert zugewiesen wird, löst das unmittelbar
mindestens folgende Ereignisse aus:
- SelectedIndexChanged
- SelectedValueChanged
- TextChanged
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Sub wird beendet, ohne das ein Fehler auftritt 
Autor: Franki
Datum: 11.05.17 02:31

Hallo,

poste doch mal den gesamten relevanten Teil wie du den Fehler mit resume next abfangen kannst. Das hört sich so nach alten VB6 Mechanismen an, die zwar immer noch funktionieren aber die man damals schon richtig machen musste.

Da gibt es zur Beschreibung des Fehlers z.B. .number, .description, .clear. über die beiden ersten bekommt man genauere Hinweise zur Fehlernummer und Fehlerbeschreibung. Falls du wirklich da eine Mischung hast, schau dir das mal an:

Private Sub Form_Load()
    Dim Ergebnis As Integer
    Dim Zahl1 As Integer
 
    Zahl1 = 10
 
    On Error Resume Next
        'Fehler provozieren
        Ergebnis = Zahl1 / 0
 
        If Err.Number > 0 Then
            MsgBox "Fehlernummer: " & Err.Number & vbCrLf & "Fehlertext: " & _
              Err.Description
            Exit Sub
        End If
    Err.Clear
 
    MsgBox Ergebnis
End Sub
Unter .NET hat mit Try, Catch, Finaly usw. zwar mehr Möglichkeiten als früher, aber auch da gilt, dass man sich mit Fehlerbehandlung auseinander setzten muss und bei Bedarf Schritt für Schritt debuggen/kontrollieren muss wenn man den wirklichen Fehler finden möchte.

Mit resume next einen Fehler zu übergehen mag zwar funktionieren, ist aber nur in den allerwenigsten Fällen sinnvoll.

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Sub wird beendet, ohne das ein Fehler auftritt 
Autor: Seek1
Datum: 11.05.17 07:10

Sodala. Problem gelöst.
Neues Projekt angelegt.
Alle controls und code rüberkopiert -> funktioniert.

An was es gelegen hat? Keine Ahnung
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Sub wird beendet, ohne das ein Fehler auftritt 
Autor: JangoF
Datum: 11.05.17 11:01

Kann sein das was im Designercode nicht gestimmt hat was jetzt im neuen Projekt aber wieder stimmt.
Habe da schon ähnliche Erfahrung gemacht wenn Controls plötzlich unerklärliches Verhalten an den Tag legen.

Beitrag wurde zuletzt am 11.05.17 um 11:05:03 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Allgemeiner Hinweis 
Autor: Manfred X
Datum: 11.05.17 17:02

Debug-Probleme können auftreten, weil die
Koordination zwischen Code-Dateien und der
PDB-Datei (im BIN-Ordner des Projekts)
durcheinander geraten ist.

Abhilfe schafft oft das Löschen dieser PDB-Datei
und das Neu-Erstellen des gesamten Projekts.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel