For Each in verschiedene Textboxen und Listboxen

  • VB.NET

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

    For Each in verschiedene Textboxen und Listboxen

    Hallo zusammen,
    Ich habe vorher mit Hilfe des Forums die Letzten Problem von:

    VB.NET-Quellcode

    1. Dim olApp = New Outlook.Application()
    2. Dim oNs As Outlook.NameSpace
    3. Dim oCalendar As Outlook.MAPIFolder
    4. Dim olCalendarItems As Outlook.Items
    5. Dim oTermin As Outlook.AppointmentItem
    6. oNs = olApp.GetNamespace("mapi")
    7. oCalendar = oNs.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar)
    8. olCalendarItems = oCalendar.Items
    9. Dim counter = 0
    10. For Each oTermin In olCalendarItems
    11. If oTermin.Start.ToString() > DateTime.Now Then
    12. If counter = 8 Then Exit Sub
    13. ListBox1.Items.Add("Subject: " + oTermin.Subject) ' = Titel
    14. ListBox1.Items.Add("Organizer: " + oTermin.Organizer) ' = Organisator
    15. ListBox1.Items.Add("Kommentar: " + oTermin.Body) ' = Kommentar
    16. ListBox1.Items.Add("Start: " + oTermin.Start.ToString() & " " & "Ende: " + oTermin.End.ToString()) ' = Startdatum - Ende
    17. ListBox1.Items.Add(" ")
    18. counter += 1
    19. End If
    20. Next


    Beseitigt.

    Jetzt geht es um die Darstellung:
    (wie ich es gerne hätte ist in einem Screenshot angehängt.)
    Farben ect mal nicht beachten es geht um die Struktur.

    Nun im oben genannten Code lese ich einfach die nächsten 6 Termine aus und Liste diese in eine Listbox.

    Wie kann ich nun diese 6 Termine sinnvoll in den angehängten Screenshot (solch ein Designe) bringen?

    danke im voraus

    Edit:
    Ich mach es jetzt mal mit counter


    Edit:

    Ich habe es Jetzt so gelöst:

    VB.NET-Quellcode

    1. Dim olApp = New Outlook.Application()
    2. Dim oNs As Outlook.NameSpace
    3. Dim oCalendar As Outlook.MAPIFolder
    4. Dim olCalendarItems As Outlook.Items
    5. Dim oTermin As Outlook.AppointmentItem
    6. oNs = olApp.GetNamespace("mapi")
    7. oCalendar = oNs.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar)
    8. olCalendarItems = oCalendar.Items
    9. Dim counter = 0
    10. For Each oTermin In olCalendarItems
    11. If oTermin.Start.ToString() > DateTime.Now Then
    12. If counter = 6 Then Exit Sub
    13. If counter = 0 Then
    14. start1.Text = oTermin.Start.ToString()
    15. end1.Text = oTermin.End.ToString()
    16. betreff1.Text = oTermin.Subject
    17. organisator1.Text = oTermin.Organizer
    18. detail1.Text = oTermin.Body
    19. counter += 1
    20. ElseIf counter = 1 Then
    21. start2.Text = oTermin.Start.ToString()
    22. end2.Text = oTermin.End.ToString()
    23. betreff2.Text = oTermin.Subject
    24. organisator2.Text = oTermin.Organizer
    25. detail2.Text = oTermin.Body
    26. counter += 1
    27. ElseIf counter = 2 Then
    28. start3.Text = oTermin.Start.ToString()
    29. end3.Text = oTermin.End.ToString()
    30. betreff3.Text = oTermin.Subject
    31. organisator3.Text = oTermin.Organizer
    32. detail3.Text = oTermin.Body
    33. counter += 1
    34. ElseIf counter = 3 Then
    35. start4.Text = oTermin.Start.ToString()
    36. end4.Text = oTermin.End.ToString()
    37. betreff4.Text = oTermin.Subject
    38. organisator4.Text = oTermin.Organizer
    39. detail4.Text = oTermin.Body
    40. counter += 1
    41. ElseIf counter = 4 Then
    42. start5.Text = oTermin.Start.ToString()
    43. end5.Text = oTermin.End.ToString()
    44. betreff5.Text = oTermin.Subject
    45. organisator5.Text = oTermin.Organizer
    46. detail5.Text = oTermin.Body
    47. counter += 1
    48. ElseIf counter = 5 Then
    49. start6.Text = oTermin.Start.ToString()
    50. end6.Text = oTermin.End.ToString()
    51. betreff6.Text = oTermin.Subject
    52. organisator6.Text = oTermin.Organizer
    53. detail6.Text = oTermin.Body
    54. counter += 1
    55. End If
    56. End If
    57. Next
    58. End Sub

    Jedoch werden mir nicht die nächsten sechs sondern 6 beliebige Termin nach dem jetzigen Zeitpunkt angeziegt
    Bilder
    • snip.PNG

      77,07 kB, 1.526×626, 149 mal angesehen

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „schnibli“ ()

    Und dabei hat man dir geholfen?
    Ist denen allen Option Strict On! nicht bekannt?

    Oder anders - betrachte zeile#15:

    VB.NET-Quellcode

    1. If oTermin.Start.ToString() > DateTime.Now Then
    Welchen Datentyp hat DateTime.Now, und welchen Datentyp hat oTermin.Start.ToString()?
    Kann das ein sinnvoller Vergleich werden?

    Mit Strict On passiert sowas nicht!
    Hmm das hat niemand erwähnt :S
    danke.
    Ich habe das Sortieren auf jedenfall in den griff bekommen:

    VB.NET-Quellcode

    1. olCalendarItems.Sort("[Start]", False)


    Edit:

    VB.NET-Quellcode

    1. If CDate(oTermin.End.ToString()) > DateTime.Now Then

    schnibli schrieb:

    VB.NET-Quellcode

    1. If CDate(oTermin.End.ToString()) > DateTime.Now Then
    Warum zum Deibel antwortet mir niemand auf meine Frage, welchen Datentyp dies und das hat?? :cursing:

    Stattdessen räumen die immer ihren Code um und posten, aber gesagt, welchen Datentyp etwas hat, ist damit ja nicht.
    (sorry - ist halt grad so auch bei RAM Auslastung)

    Welchen Datentyp hat oTermin.End.ToString(), und welchen hat DateTime.Now?
    Ist das eine unklare Frage, und wenn ja, was ist daran unklar?
    @schnibli Ja war mein Fehler, ich habe mir nur den Problemstellung angesehen.
    Des WEiteren ist CDate() besser durch DateTime.Parse() zu ersten, [weiteren Text entfernt, damit EDR seine Pädagogik und Lernmittel durchsetzen kann] ^^
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais
    ich warte aber immer noch auf Schniblis Antwort.
    Is wichtig - du kannst im Grunde überhaupt nicht programmieren, wenn du nicht Datentypen erkennen und auseinander halten kannst.
    vlt. hilft Grundlagen: Fachbegriffe etwas, obwohl das ja ausdrücklich keinen Anspruch auf gebührende Korrektheit erhebt.
    @schnibli Darf ich davon ausgehen, dass Du da keine 6 UserControls auf Deiner GUI hast?
    6-fache Wiederholung, ein Control, 6 Instanzen davon.
    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!