Fehler beim Zuweisen eines Textes an ein Textfeld

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Fehler beim Zuweisen eines Textes an ein Textfeld

    Moin !

    ich habe eine Zeichenkette und möchte diese einem Textfeld zuweisen.

    Hier der Code wo etwas durchgeführt wird:

    VB.NET-Quellcode

    1. Private Sub bt_VerzeichnisWählen_FolderGrundstücke(sender As Object, e As EventArgs) Handles bt_FolderGrundstücke.Click
    2. Dim TryReport As New EBL.Service.TryCatchReport
    3. Try
    4. With FolderBrowserDialog_Grundstücke
    5. ' Ermöglicht es neue Verzeichnisse anzulegen
    6. .ShowNewFolderButton = True
    7. 'Kurzbeschreibung für den Dialog
    8. .Description = "Basisverzeichnis für Grundstücke"
    9. ' wenn eine Verzeichnisangabe vorhanden ist, dann prüfen ob verfügbar und als Default setzen
    10. If Me.txt_FolderGrundstücke.Text.Length > 0 Then
    11. .SelectedPath = Me.txt_FolderGrundstücke.Text
    12. Else
    13. ' wenn der Vorgabepath nicht vorhanden ist, dann wird der Tmp-Ordner des Anwenders als Root gesetzt
    14. If My.Computer.FileSystem.DirectoryExists(_DateiBasisVerzeichnis_FolderGrundstücke) Then
    15. .SelectedPath = CheckPathBackslash(_DateiBasisVerzeichnis_FolderGrundstücke)
    16. Else
    17. .SelectedPath = CheckPathBackslash(IO.Path.GetTempPath)
    18. End If
    19. End If
    20. If .ShowDialog = Windows.Forms.DialogResult.OK Then
    21. Dim NeuerPfad As String
    22. NeuerPfad = CheckPathBackslash(FolderBrowserDialog_Grundstücke.SelectedPath)
    23. Me.txt_FolderGrundstücke.Text = NeuerPfad
    24. End If
    25. End With
    26. 'ToDo - Überwachungsfunktion für weitere Schaltflächen etc.
    27. 'CheckDateiName()
    28. Catch ex As Exception
    29. TryReport.Show("unerwarteter Fehler in EBL.Optionen > cls_EBL_Optionen > bt_VerzeichnisWählen_FolderGrundstücke", ex.ToString)
    30. End Try
    31. End Sub


    Das Debuggen für die Variable Pfad gibt folgendes aus:

    "P:\Grundstücke_Test\"


    mit der Typenangabe "String".


    ========== Fehlermeldung ==========
    Anwendung:
    unerwarteter Fehler in EBL.Optionen > cls_EBL_Optionen > bt_VerzeichnisWählen_FolderGrundstücke

    System:
    System.InvalidCastException: Das Objekt des Typs "System.EventArgs" kann nicht in Typ "System.Windows.Forms.KeyEventArgs" umgewandelt werden.
    bei EBL.Optionen.EBL_Optionen._Lambda$__12(Object a0, EventArgs a1) in X:\VB_NET_2015\Projects\tappenbeckja\EBL.Optionen\EBL.Optionen\cls_EBL_Optionen.vb:Zeile 0.
    bei System.Windows.Forms.Control.set_Text(String value)
    bei System.Windows.Forms.TextBoxBase.set_Text(String value)
    bei System.Windows.Forms.TextBox.set_Text(String value)
    bei EBL.Optionen.EBL_Optionen.bt_VerzeichnisWählen_FolderGrundstücke(Object sender, EventArgs e) in X:\VB_NET_2015\Projects\tappenbeckja\EBL.Optionen\EBL.Optionen\cls_EBL_Optionen.vb:Zeile 1213.


    Ich verstehe einfach die Fehlermeldung nicht !

    Kann mir einer weiterhelfen ?

    Gruß Jan

    jan99 schrieb:

    Fehlermeldung
    Du hast bei EBL.Optionen.EBL_Optionen einen Lambda-Ausdruck drinne, mach da ne richtige Prozedur draus und ruf die auf.
    Irgendwo kommt ein Argument vom Typ EventArgs und da wird ein KeyEventArgs erwartet.
    Ansonsten kann ich in Deinem Code nix finden.
    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!
    HI !

    erst einmal Danke - ich weiß nur so näherungsweise was eine Lamda-Funktion ist. Da ich heute nur im nachfolgenden Teil was gemacht habe vermute ich es hier:

    VB.NET-Quellcode

    1. ''' <summary>
    2. ''' Grundstücksverzeichnis wählen
    3. ''' </summary>
    4. ''' <param name="sender"></param>
    5. ''' <param name="e"></param>
    6. ''' <remarks></remarks>
    7. Private Sub bt_VerzeichnisWählen_FolderGrundstücke(sender As Object, e As EventArgs) Handles bt_FolderGrundstücke.Click
    8. Dim TryReport As New EBL.Service.TryCatchReport
    9. Try
    10. With FolderBrowserDialog_Grundstücke
    11. ' Ermöglicht es neue Verzeichnisse anzulegen
    12. .ShowNewFolderButton = True
    13. 'Kurzbeschreibung für den Dialog
    14. .Description = "Basisverzeichnis für Grundstücke"
    15. ' wenn eine Verzeichnisangabe vorhanden ist, dann prüfen ob verfügbar und als Default setzen
    16. If Me.txt_FolderGrundstücke.Text.Length > 0 Then
    17. .SelectedPath = Me.txt_FolderGrundstücke.Text
    18. Else
    19. ' wenn der Vorgabepath nicht vorhanden ist, dann wird der Tmp-Ordner des Anwenders als Root gesetzt
    20. If My.Computer.FileSystem.DirectoryExists(_DateiBasisVerzeichnis_FolderGrundstücke) Then
    21. .SelectedPath = CheckPathBackslash(_DateiBasisVerzeichnis_FolderGrundstücke)
    22. Else
    23. .SelectedPath = CheckPathBackslash(IO.Path.GetTempPath)
    24. End If
    25. End If
    26. If .ShowDialog = Windows.Forms.DialogResult.OK Then
    27. Dim NeuerPfad As String
    28. NeuerPfad = CheckPathBackslash(FolderBrowserDialog_Grundstücke.SelectedPath)
    29. Me.txt_FolderGrundstücke.Text = NeuerPfad
    30. End If
    31. End With
    32. 'ToDo - Überwachungsfunktion für weitere Schaltflächen etc.
    33. 'CheckDateiName()
    34. Catch ex As Exception
    35. TryReport.Show("unerwarteter Fehler in EBL.Optionen > cls_EBL_Optionen > bt_VerzeichnisWählen_FolderGrundstücke", ex.ToString)
    36. End Try
    37. End Sub
    38. ''' <summary>
    39. ''' Prüft, ob Pfad auf '\' endet und ergänzt ggf. diesen
    40. ''' </summary>
    41. ''' <param name="Pfad">zu prüfender Pfad</param>
    42. ''' <returns>geprüfter Pfad</returns>
    43. Private Function CheckPathBackslash(ByVal Pfad As String) As String
    44. If Pfad.Length = 0 Then
    45. Return Pfad
    46. End If
    47. If Not Pfad.Substring(Pfad.Length - 1, 1) = "\" Then
    48. Pfad += "\"
    49. End If
    50. Return Pfad
    51. End Function


    Ist da eine solche Funktion "zufällig" reingekommen ?

    Gruß Jan

    jan99 schrieb:

    vermute
    mal was anderes, hier ist keine drin.
    Was steht in

    RodFromGermany schrieb:

    EBL.Optionen.EBL_Optionen
    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!

    jan99 schrieb:

    Source
    Sorry. :/ die ist abgeleitet von Autodesk, hab ich nich und gedenke ich auch nicht wegen Dir zu holen.
    Oder
    Du machst eine abgespeckte Variante für WinForm, die Deinen Effekt reproduziert.
    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!
    Moin!

    ich habe das heute nochmal etwas mit try-and-error ausprobiert du dabei ist folgendes herausgekommen.

    Wenn ich in der Eventfunktion

    VB.NET-Quellcode

    1. Private Sub num_KeyDown


    den Eintrag für "txt_FolderGrundstücke.TextChanged" rausnehme, dann funktioniert es!

    Was ich allerdings merkwürdige finde in dieser ganze .vb-Datei das zwei Funktionen bei mir immer wieder plötzlich kaputt sind!! Auf einmal ist dann nur noch

    VB.NET-Quellcode

    1. ''' <summary>
    2. ''' markieren des Inhaltes, wenn der Fokus erhalten wird.
    3. ''' </summary>
    4. ''' <param name="sender"></param>
    5. ''' <remarks></remarks>
    6. Handles nud_GK_Rechts_Min.GotFocus, nud_GK_Hoch_Min.GotFocus, nud_GK_Rechts_Max.GotFocus, nud_GK_Hoch_Max.GotFocus, nud_UTM_Rechts_Min.GotFocus, nud_UTM_Hoch_Min.GotFocus, nud_UTM_Rechts_Max.GotFocus, nud_UTM_Hoch_Max.GotFocus, nud_UTM_AddKonstante.GotFocus, nud_Höhe_Min.GotFocus, nud_Höhe_Max.GotFocus, nud_ZoomWindowWidth.GotFocus
    7. sender.Select(0, sender.ToString.Length - 1)
    8. End Sub


    über....!! Und das immer in der gleichen Form!

    Gut das es Sicherungen gibt!!!

    Gruß Jan

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

    jan99 schrieb:

    Lambda
    -Ausdrücke haben keine Zeilennummern.
    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!