| |
VB.NET - Ein- und UmsteigerSub 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? | |
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. | |
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. | |
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. | |
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. | |
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? | |
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). | |
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. | |
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) | |
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)? | |
Re: Sub wird beendet, ohne das ein Fehler auftritt | | | Autor: Seek1 | Datum: 10.05.17 12:53 |
| Nein, eine normale Combobox | |
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? | |
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. | |
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 | |
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 | |
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 | |
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. | |
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. | |
| 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 |
|
|
Neu! sevEingabe 3.0
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|