eine Function in Form #1 soll auf Bestätigung von Form #3 warten

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 20 Antworten in diesem Thema. Der letzte Beitrag () ist von Bartosz.

    eine Function in Form #1 soll auf Bestätigung von Form #3 warten

    Hallo liebes Forum,

    Vorwissen:
    es werden mit einem Öffnen-Dialog mit Multiselect 5 Bilder eingelesen.

    Nun geht es darum: Die Function Get_Dates soll aus den Bildern die Aufnahmedaten ziehen. Hierin wird unterschieden: Falls es keine Metadaten gibt, wird Form 3 gezeigt.
    In dieser wird das aktuelle Bild, um das es geht, in einer PictureBox angezeigt und der User soll ein Datum eingeben und mit dem Button bzw. Enter bestätigen. Daher ist die Variable Public eingegebenes_Datum As Date nun befüllt und es wird in Form1 geprüft, ob wirklich etwas drinsteht. Nun das Problem: Falls es im nächsten Bild wieder keine Metadaten gibt, wird ja wieder die Form3 geöffnet. In der Variable eingegebenes_Datum steht aber noch was drin (vom vorherigen) und mir fällt nichts ein, wie ich das umgehen kann. Wie prüfe ich das ab in dem While?

    Aaarrgghh !!

    Hättet ihr da bitte eine Idee für mich?

    In Form1, Aufruf der Funktion:

    VB.NET-Quellcode

    1. Dim Datumse As List(Of Date) = Get_Dates(Bildpfad)
    2. Form_Datum_eingeben.Close()
    mit Bildpfad as String() -> sind die Dateinamen aus dem Öffnendialog.
    Datumse ändere ich noch ab, das war Absicht!

    Die Function Get_Dates (auch Form1)

    VB.NET-Quellcode

    1. Private Function Get_Dates(ByVal Bildpfad As String()) As List(Of Date)
    2. Dim List_of_dates = New List(Of Date)
    3. For i As Integer = 0 To Bildpfad.Length - 1 Step 1
    4. Try
    5. Using fs As FileStream = New FileStream(Bildpfad(i), FileMode.Open, FileAccess.Read, FileShare.Read)
    6. Dim img As BitmapSource = BitmapFrame.Create(fs)
    7. Dim md As BitmapMetadata = CType(img.Metadata, BitmapMetadata)
    8. Dim date1 As String = md.DateTaken
    9. Try
    10. List_of_dates.Add(CDate(date1))
    11. Catch ex As System.InvalidCastException 'kein Datum vorhanden
    12. Debug.WriteLine("Invalid Cast Exception in Function Get_Dates in Form1")
    13. Form_Datum_eingeben.Show()
    14. Form_Datum_eingeben.PictureBox_Datum_eingeben.Image = Image.FromStream(fs)
    15. Application.DoEvents()
    16. While Form_Datum_eingeben.eingegebenes_Datum = #1/1/0001 12:00:00AM# 'HIER
    17. Form_Datum_eingeben.Show()
    18. Application.DoEvents()
    19. End While
    20. List_of_dates.Add(Form_Datum_eingeben.eingegebenes_Datum)
    21. End Try
    22. End Using
    23. Catch ex As System.ArgumentNullException 'Pfad == NULL
    24. End Try
    25. Next
    26. Return List_of_dates
    27. End Function



    und zu guter letzt Form3

    VB.NET-Quellcode

    1. Public Class Form_Datum_eingeben
    2. Public eingegebenes_Datum As Date
    3. Private Sub Form_Datum_eingeben_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    4. End Sub
    5. Private Sub Button_bestaetigen_Click(sender As Object, e As EventArgs) Handles Button_bestaetigen.Click
    6. If Not System.String.IsNullOrEmpty(TextBox_Datum_eingeben.Text) Then
    7. Try
    8. eingegebenes_Datum = CDate(TextBox_Datum_eingeben.Text)
    9. TextBox_Datum_eingeben.Text = ""
    10. Application.DoEvents()
    11. Catch ex As System.InvalidCastException 'blöd eingegeben
    12. MessageBox.Show($"Falsch eingegeben, oder{vbCrLf}heutiges Datum eingegeben", "Invalid Cast Exception", MessageBoxButtons.OK, MessageBoxIcon.Warning)
    13. End Try
    14. End If
    15. End Sub
    16. Private Sub TextBox_Datum_eingeben_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox_Datum_eingeben.KeyDown
    17. If e.KeyCode = Keys.Enter Then
    18. If Not System.String.IsNullOrEmpty(TextBox_Datum_eingeben.Text) Then
    19. Button_bestaetigen_Click(0, Nothing)
    20. End If
    21. End If
    22. End Sub
    23. Private Sub Form_Datum_eingeben_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
    24. PictureBox_Datum_eingeben.Image = Nothing
    25. GC.Collect()
    26. End Sub
    27. End Class


    PS: Warum kann man eigentlich nicht das heutige Datum eingeben? Ist doch Mist...

    Später werden dann die Daten sortiert und die Bilder werden, auch sortiert, in den PictureBoxen angezeigt. Aber das habe ich schon.

    Viele Grüße
    Bilder
    • Form3 - Kopie.jpg

      36,07 kB, 475×430, 59 mal angesehen
    An die Neulinge: Nutzt Option Strict On und Option Infer Off. Dadurch kommt ihr mit Datentypumwandlungen nicht durcheinander und der Code verbessert sich um Einiges! Solche Fehler à la Dim Beispiel As Integer = "123" können nicht mehr passieren.
    Hallo,

    Initialisiere die Form neu (oder überhaupt erstmal) bevor du die aufrufst:

    In Form_Datum_eingeben:

    VB.NET-Quellcode

    1. Public Property EingebenesDatum as Date
    2. Private Sub TextBox_Datum_eingeben_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox_Datum_eingeben.KeyDown
    3. If e.KeyCode = Keys.Enter Then
    4. If Not System.String.IsNullOrEmpty(TextBox_Datum_eingeben.Text) Then
    5. If Date.TryParse(TextBox_Datum_eingeben.Text, EingebenesDatum) Then
    6. Button_bestaetigen_Click(0, Nothing)
    7. End If
    8. End If
    9. End If
    10. End Sub


    In Form1:

    VB.NET-Quellcode

    1. Dim MyFrm as New Form_Datum_eingeben
    2. Myfrm.ShowDialog(Me)
    3. eingegebenes_Datum = MyFrm.EingegebenesDatum


    Edit: Hier der Beitrag von @RodFromGermany könnte dich interessieren.


    Ein Computer wird das tun, was du programmierst - nicht das, was du willst.

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

    @Bartosz Sende von Form3 an Form1 ein Event. Mach Dir Deine eigenen EventArgs, da kannst Du multiple Informationen reinpacken.
    Der @ErfinderDesRades hat da mal was verzapft: Alles über Events
    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!
    Na, wenn's RfG nicht macht, mach ich es: Form_Datum_eingeben.Show(): Dialoge richtig instanziieren; ah, @Yanbel hat's ja schon geschrieben …
    Und damit kommst Du schon etwas näher ans Ziel. Mach nicht Show, sondern ShowDialog. Und schon wird die Kontrolle ans nächste Form gegeben, bis das fertig ist. Und erst danach geht's programmtechnisch bei Get_Dates weiter. Damit kannst Du Dir auch das hier ungern gesehene DoEvents sparen.
    btw: Schön, dass Du diesen Augenkrebs namens Datumse selber abgeändert hast. Dieses Unwort wird von jemandem hier im Forum sehr häufig verwendet, der normalerweise viel Wert auf die korrekte Verwendung von korrekten Wörtern legt. Gegenvorschlag für einen deutschen Variablennamen: Datumsangaben. Daten ist zwar der korrekte Plural, aber in unserem Fachjargon ziemlich unpassend/mehrdeutig.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    VaporiZed schrieb:

    Na, wenn's RfG nicht macht, mach ich es: Form_Datum_eingeben.Show(): Dialoge richtig instanziieren; ah, @Yanbel hat's ja schon geschrieben …

    Nachträglich eingefügt. Hatte während ich geschrieben habe nicht aktualisiert. Sonst hätte ich mir das gespart ;)


    Ein Computer wird das tun, was du programmierst - nicht das, was du willst.
    Hi all,

    ich habe mich auf die Schnelle an @Yanbels Vorschlag gehalten (siehe Code). Es funktioniert super!

    @VaporiZed Danke für Datumsangaben einmal strg+h, eingeben, alles ersetzt xD. 2.) ich habe nun ShowDialog genutzt

    @RodFromGermany könntest du mir bitte ein kleines Beispiel geben?

    @all: was ich jetzt noch bräuchte, wäre, 1.) dass nachdem der Benutzer ENTER gedürckt hat, die neue Form automatisch schließt. und 2.) Leider wird das Bild in der PictureBox der Form3 nicht mehr angezeigt

    Form_Datum_eingeben

    VB.NET-Quellcode

    1. Public Class Form_Datum_eingeben
    2. Public Property EingebenesDatum As Date
    3. Private Sub Form_Datum_eingeben_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    4. Me.BackColor = Color.FromArgb(188, 227, 204)
    5. End Sub
    6. Private Sub Button_bestaetigen_Click(sender As Object, e As EventArgs) Handles Button_bestaetigen.Click
    7. If Not System.String.IsNullOrEmpty(TextBox_Datum_eingeben.Text) Then
    8. Try
    9. Date.TryParse(TextBox_Datum_eingeben.Text, EingebenesDatum)
    10. TextBox_Datum_eingeben.Text = ""
    11. Application.DoEvents()
    12. Catch ex As System.InvalidCastException 'blöd eingegeben
    13. MessageBox.Show($"Falsch eingegeben, oder{vbCrLf}heutiges Datum eingegeben", "Invalid Cast Exception", MessageBoxButtons.OK, MessageBoxIcon.Warning)
    14. End Try
    15. End If
    16. End Sub
    17. Private Sub TextBox_Datum_eingeben_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox_Datum_eingeben.KeyDown
    18. If e.KeyCode = Keys.Enter Then
    19. If Not System.String.IsNullOrEmpty(TextBox_Datum_eingeben.Text) Then
    20. If Date.TryParse(TextBox_Datum_eingeben.Text, EingebenesDatum) Then
    21. Button_bestaetigen_Click(0, Nothing)
    22. End If
    23. End If
    24. End If
    25. End Sub
    26. Private Sub Form_Datum_eingeben_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
    27. PictureBox_Datum_eingeben.Image = Nothing
    28. GC.Collect()
    29. End Sub
    30. End Class



    VB.NET-Quellcode

    1. Private Function Get_Dates(ByVal Bildpfad As String()) As List(Of Date)
    2. Dim List_of_dates = New List(Of Date)
    3. For i As Integer = 0 To Bildpfad.Length - 1 Step 1
    4. Try
    5. Using fs As FileStream = New FileStream(Bildpfad(i), FileMode.Open, FileAccess.Read, FileShare.Read)
    6. Dim img As BitmapSource = BitmapFrame.Create(fs)
    7. Dim md As BitmapMetadata = CType(img.Metadata, BitmapMetadata)
    8. Dim date1 As String = md.DateTaken
    9. Try
    10. List_of_dates.Add(CDate(date1))
    11. Catch ex As System.InvalidCastException 'kein Datum vorhanden
    12. Debug.WriteLine("Invalid Cast Exception in Function Get_Dates in Form1")
    13. Using MyFrm As New Form_Datum_eingeben
    14. MyFrm.ShowDialog(Me)
    15. MyFrm.PictureBox_Datum_eingeben.Image = Image.FromStream(fs)
    16. Application.DoEvents()
    17. EingebenesDatum = MyFrm.EingebenesDatum
    18. End Using
    19. List_of_dates.Add(EingebenesDatum)
    20. End Try
    21. End Using
    22. Catch ex As System.ArgumentNullException 'Pfad == NULL
    23. End Try
    24. Next
    25. Return List_of_dates
    26. End Function
    An die Neulinge: Nutzt Option Strict On und Option Infer Off. Dadurch kommt ihr mit Datentypumwandlungen nicht durcheinander und der Code verbessert sich um Einiges! Solche Fehler à la Dim Beispiel As Integer = "123" können nicht mehr passieren.
    Ok, langsam.
    Tausche in Codeblock#2 die Zeilen#14 und #15. Die Forminstanz existiert ja schon (Z#13), wird nur noch nicht angezeigt. Aber manipulierbar ist sie schon.

    Codevorschläge:
    CB#1, Z#8: Arbeite ggf. mit einer If-Umkehrung verwenden, um die Übersicht zu verbessern bzw. den Code etwas zu vereinfachen: If System.String.IsNullOrEmpty(TextBox_Datum_eingeben.Text) Then Return, genauso Z#20-#22
    Z#16: Wozu?
    Z#31: GC.Collect? Wozu?

    CB#2, Z#1: ByVal ist redundant (also überflüssig)
    Z#3: Step 1 ist redundant

    Das Ganze Try-Catch ist eigentlich überflüssig. Da kannst Du auch mit If arbeiten, s. z.B. Date.TryParse
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @VaporiZed Danke für die Code-Tipps. Das GC.Collect kam noch von heute Mittag, aus der Rumbastelzeit...musste mal bissl aufräumen. Habe ich entfernt.

    Z#16: Wozu?
    Meinst du die MessageBox? Er nahm das heutige Datum nicht!! Jetzt gehts aber. Danke euch
    An die Neulinge: Nutzt Option Strict On und Option Infer Off. Dadurch kommt ihr mit Datentypumwandlungen nicht durcheinander und der Code verbessert sich um Einiges! Solche Fehler à la Dim Beispiel As Integer = "123" können nicht mehr passieren.

    Bartosz schrieb:

    ein kleines Beispiel
    So was:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private WithEvents MyTestClass As TestClass
    3. Public Sub New()
    4. Me.InitializeComponent()
    5. Me.MyTestClass = New TestClass
    6. End Sub
    7. Private Sub MyTestEvent(sender As Object, e As EventArgs) Handles MyTestClass.TestEvent
    8. MessageBox.Show("TestEvent")
    9. End Sub
    10. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    11. Me.MyTestClass.Test()
    12. End Sub
    13. End Class
    14. Class TestClass
    15. Public Event TestEvent(sender As Object, e As EventArgs)
    16. Public Sub Test()
    17. RaiseEvent TestEvent(Me, EventArgs.Empty)
    18. End Sub
    19. End Class

    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!
    Sorry, ich meinte Codeblock#2, Zeile#16: da ist dieses Application.DoEvents(); das ist ein wenig fragwürdig.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @VaporiZed achso ok

    @all: Sorry ich habe das nächste Problem: Ich dachte, es funzt alles, aber in Wikrlichkeit funktioniert Date.TryParse nicht
    ich habe auch schon

    VB.NET-Quellcode

    1. Date.TryParse(TextBox_Datum_eingeben.Text & " 11:59 AM", EingebenesDatum)

    versucht.
    Immer bleibt das Datum auf 1/1/0001 12:00AM

    Manchmal geht das , manchmal nicht. Ich gehe jetzt einkaufen -.-
    An die Neulinge: Nutzt Option Strict On und Option Infer Off. Dadurch kommt ihr mit Datentypumwandlungen nicht durcheinander und der Code verbessert sich um Einiges! Solche Fehler à la Dim Beispiel As Integer = "123" können nicht mehr passieren.

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

    Wenn Du jetzt noch den Rückgabewert von Date.TryParse auswerten würdest, wärst Du wieder ein wenig schlauer. Denn sie gibt zurück, ob der eingegebene Text überhaupt in ein Date umgewandelt und in EingegebenesDatum abgespeichert werden kann.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @VaporiZed Ich habe es nun das TryCatch rausgeschmissen. Damit funktioniert es in der Form3. Rückgabewert ist übrigens ein Boolean.
    Drüben in Form1 kommt des aber nicht an (weiterhin 1/1/0001 12:00:00 AM)

    VB.NET-Quellcode

    1. Public Class Form_Datum_eingeben
    2. Public Property EingebenesDatum As Date
    3. Private Sub Form_Datum_eingeben_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    4. End Sub
    5. Private Sub Button_bestaetigen_Click(sender As Object, e As EventArgs) Handles Button_bestaetigen.Click
    6. If System.String.IsNullOrEmpty(TextBox_Datum_eingeben.Text) Then
    7. Return
    8. End If
    9. Dim Dummy As Boolean = Date.TryParse(TextBox_Datum_eingeben.Text, EingebenesDatum)
    10. End Sub
    11. Private Sub TextBox_Datum_eingeben_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox_Datum_eingeben.KeyDown
    12. If e.KeyCode = Keys.Enter Then
    13. If System.String.IsNullOrEmpty(TextBox_Datum_eingeben.Text) Then
    14. Return
    15. End If
    16. If Date.TryParse(TextBox_Datum_eingeben.Text, EingebenesDatum) Then
    17. Button_bestaetigen_Click(0, Nothing)
    18. End If
    19. End If
    20. End Sub
    21. Private Sub Form_Datum_eingeben_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
    22. PictureBox_Datum_eingeben.Image = Nothing
    23. End Sub
    24. End Class


    VB.NET-Quellcode

    1. Private Function Get_Dates(ByVal Bildpfad As String()) As List(Of Date)
    2. Dim List_of_dates = New List(Of Date)
    3. For i As Integer = 0 To Bildpfad.Length - 1 Step 1
    4. Try
    5. Using fs As FileStream = New FileStream(Bildpfad(i), FileMode.Open, FileAccess.Read, FileShare.Read)
    6. Dim img As BitmapSource = BitmapFrame.Create(fs)
    7. Dim md As BitmapMetadata = CType(img.Metadata, BitmapMetadata)
    8. Dim date1 As String = md.DateTaken
    9. Try
    10. List_of_dates.Add(CDate(date1))
    11. Catch ex As System.InvalidCastException 'kein Datum vorhanden
    12. Debug.WriteLine("Invalid Cast Exception in Function Get_Dates in Form1")
    13. Using MyFrm As New Form_Datum_eingeben
    14. MyFrm.PictureBox_Datum_eingeben.Image = Image.FromStream(fs)
    15. MyFrm.TextBox_Datum_eingeben.Text = "#1/1/0001 12:00:00 AM#"
    16. Dim dummy As DialogResult = MyFrm.ShowDialog(Me) 'durch ShowDialog (statt Show) wird die Kontrolle an Form3 übergeben. Und damit geht's hier erst weiter, wenn Form3 fertig ist.
    17. 'EingebenesDatum = MyFrm.EingebenesDatum
    18. List_of_dates.Add(MyFrm.EingebenesDatum)
    19. End Using
    20. End Try
    21. End Using
    22. Catch ex As System.ArgumentNullException 'Pfad == NULL
    23. End Try
    24. Next
    25. Return List_of_dates
    26. End Function
    An die Neulinge: Nutzt Option Strict On und Option Infer Off. Dadurch kommt ihr mit Datentypumwandlungen nicht durcheinander und der Code verbessert sich um Einiges! Solche Fehler à la Dim Beispiel As Integer = "123" können nicht mehr passieren.
    Probier's mal im Datums-Eingabeform damit:

    VB.NET-Quellcode

    1. Public Class Form_Datum_eingeben
    2. Public Property EingebenesDatum As Date
    3. Private Sub Button_bestaetigen_Click(sender As Object, e As EventArgs) Handles Button_bestaetigen.Click
    4. ProcessDateText()
    5. End Sub
    6. Private Sub TextBox_Datum_eingeben_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox_Datum_eingeben.KeyDown
    7. If Not e.KeyCode = Keys.Enter Then Return
    8. ProcessDateText()
    9. End Sub
    10. Private Sub ProcessDateText()
    11. If Not DateTextIsValid() Then MessageBox.Show("Dieser Text kann nicht in ein Datum umgewandelt werden.") : Return
    12. Close()
    13. End Sub
    14. Private Function DateTextIsValid() As Boolean
    15. Return Date.TryParse(TextBox_Datum_eingeben.Text, EingebenesDatum)
    16. End Function
    17. End Class
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @VaporiZed Jetzt kommt's drüben an. Aber ich merkte gerade, dass der eingegebene Tag nicht 2 Zeichen haben darf. Also nur bis Tag 9 im Monat :(
    Weil wenn ich 3/10/2020 eingebe, kommt deine MessageBox "Dieser Text kann nicht in ein Datum umgewandelt werden."

    Danke bisher, auch mit dem Close in Form3 ;)
    An die Neulinge: Nutzt Option Strict On und Option Infer Off. Dadurch kommt ihr mit Datentypumwandlungen nicht durcheinander und der Code verbessert sich um Einiges! Solche Fehler à la Dim Beispiel As Integer = "123" können nicht mehr passieren.

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

    Kann ich nicht bestätigen, die Eingaben im Anhang werden akzeptiert. Dann mach mal

    VB.NET-Quellcode

    1. Private Sub ProcessDateText()
    2. If Not DateTextIsValid() Then MessageBox.Show($"Der Text »{TextBox_Datum_eingeben.Text}« kann nicht in ein Datum umgewandelt werden.") : Return
    3. Close()
    4. End Sub
    Und poste einen Screeshot der MessageBox-Meldung.
    Bilder
    • ValidDates.png

      5,13 kB, 377×369, 38 mal angesehen
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Da muss ich etewas missverstanden haben:
    Wie in der Dokumentation
    steht und wie auch bekannt ist, ist das Datumsformat englisch, also
    mm/dd/yyyy , wie auch in Bild 1 zu sehen.

    In dem Moment, wo man es in die Textbox eingibt, muss es anscheinend Deutsch sein (jedenfalls dd/mm/yyyy). Siehe Bild 2. Konnte ich auch nicht wissen.
    ##############
    Moment mal, wieso gehts bei dir denn? Ist das, weil ich die Assembly-Sprache auf "Deutsch (Deutschland)" gestellt habe?
    Bilder
    • Debug - Kopie.jpg

      30,75 kB, 626×80, 37 mal angesehen
    • Form3 - Kopie.jpg

      32,79 kB, 471×148, 38 mal angesehen
    An die Neulinge: Nutzt Option Strict On und Option Infer Off. Dadurch kommt ihr mit Datentypumwandlungen nicht durcheinander und der Code verbessert sich um Einiges! Solche Fehler à la Dim Beispiel As Integer = "123" können nicht mehr passieren.
    Ich weiß zwar nicht, wie Du die Assembly-Sprache festgelegt hast, aber ich muss ebenfalls #dd/MM/yyyy hh:mm:ss# eingeben. Also 31/12/2020 geht, 12/31/2020 nicht. Ich bat aber eigentlich um sowas wie im Anhang.
    Ach ja: Wenn man das Form mit dem roten [X] schließt, kommt Dein Default-Datum raus. Das weißt Du, oder?
    Bilder
    • Error.png

      6,38 kB, 525×190, 35 mal angesehen
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Wenn man das Form mit dem roten [X] schließt, kommt Dein Default-Datum raus. Das weißt Du, oder?
    Ja

    [tt]Ich weiß zwar nicht, wie Du die Assembly-Sprache festgelegt hast,[\tt]
    Projekt -> Eigenschaften (ganz unten)

    Anbei die Anhänge
    FxCopAnalyzers will ja immer, dass man die Sprache einstellt... Aber wenn du auch dd/mm/yyyy eingeben musst...Ich bin mir sicher, ich habe in der Dokumentation etwas anderes gelesen. Wieso weiß Visual Studio, dass das die deutsche Eingabe sein muss?
    Bilder
    • MessageBox - Kopie.jpg

      32,63 kB, 492×215, 33 mal angesehen
    • screenshot Ra - Kopie.jpg

      129,55 kB, 854×876, 31 mal angesehen
    An die Neulinge: Nutzt Option Strict On und Option Infer Off. Dadurch kommt ihr mit Datentypumwandlungen nicht durcheinander und der Code verbessert sich um Einiges! Solche Fehler à la Dim Beispiel As Integer = "123" können nicht mehr passieren.
    Na, dass #13/13/2020 …# kein Datum ist, sollte allen klar sein. Es ging Dir ja auch um #3/10/2020#
    Die Assembly-Spracheinstellung hat (bei mir) keinen Einfluss.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.