Feiertage in Kalender anzeigen

  • VB.NET

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von papawt.

    Feiertage in Kalender anzeigen

    Hallo

    um etwas zu Lernen hab ich einen Monatskalender erstellt.
    Soweit bin ich mit dem ganzen zufrieden, aber leider scheitern
    meine Versuche die Feiertage im Kalender Rot anzuzeigen (ForeColor).
    Berechnung der Feiertage hab ich hier im Forum gefunden, und die anzeige in
    einem Label geht auch.
    Später wollte ich noch versuchen KW und Schichten einfügen.
    hier mein bisheriger Code.

    VB.NET-Quellcode

    1. Public Class Form1
    2. #Region "Variable"
    3. Dim x As Integer
    4. Private tageImMonat() As Label
    5. Dim del As Integer
    6. Dim m As Integer
    7. Dim y As Integer
    8. Dim d As Integer
    9. Dim j As Date
    10. Dim jahr As Integer
    11. Dim monat As Integer
    12. Dim tage As Integer
    13. Dim startTag As Integer
    14. #End Region
    15. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    16. 'Combobox cbJahre füllen
    17. For y = 1900 To 2100
    18. cbJahre.Items.Add(y)
    19. Next y
    20. 'Combobox cbMonate füllen
    21. For m = 1 To 12
    22. cbMonate.Items.Add(MonthName(m)).ToString("MMMM")
    23. Next m
    24. 'Combobox cbTage füllen
    25. For d = 1 To 31
    26. cbTage.Items.Add(d)
    27. Next d
    28. 'Combobox Text Select
    29. cbJahre.SelectedText = DateTime.Now.Year.ToString
    30. cbMonate.SelectedText = (MonthName(DateTime.Now.Month)).ToString
    31. cbTage.SelectedText = DateTime.Now.Day.ToString
    32. 'Datum anzeigen im Label
    33. labelanzeige()
    34. lblMo.Text = WeekdayName(1, True)
    35. lblDi.Text = WeekdayName(2, True)
    36. LblMi.Text = WeekdayName(3, True)
    37. lblDo.Text = WeekdayName(4, True)
    38. lblFr.Text = WeekdayName(5, True)
    39. lblSa.Text = WeekdayName(6, True)
    40. lblSo.Text = WeekdayName(7, True)
    41. End Sub
    42. Private Sub cbJahre_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbJahre.SelectedIndexChanged
    43. labelanzeige()
    44. End Sub
    45. Private Sub cbMonate_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbMonate.SelectedIndexChanged
    46. labelanzeige()
    47. End Sub
    48. Private Sub cbTage_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbTage.SelectedIndexChanged
    49. labelanzeige()
    50. End Sub
    51. Sub labelanzeige()
    52. jahr = CInt(cbJahre.Text)
    53. tage = CInt(cbTage.Text)
    54. Select Case cbMonate.Text
    55. Case "Januar"
    56. monat = 1
    57. Case "Februar"
    58. monat = 2
    59. If Date.IsLeapYear(jahr) = False And tage > 28 Then
    60. MessageBox.Show("Februar" & " ist kein Schaltjahr")
    61. Exit Sub
    62. Else
    63. If Date.IsLeapYear(jahr) = True And tage > 29 Then
    64. MessageBox.Show("Februar" & " hat nur 29 Tage")
    65. Exit Sub
    66. End If
    67. End If
    68. Case "März"
    69. monat = 3
    70. Case "April"
    71. monat = 4
    72. If tage > 30 Then
    73. MessageBox.Show("April" & " hat nur 30 Tage")
    74. Exit Sub
    75. End If
    76. Case "Mai"
    77. monat = 5
    78. Case "Juni"
    79. monat = 6
    80. If tage > 30 Then
    81. MessageBox.Show("Juni" & " hat nur 30 Tage")
    82. Exit Sub
    83. End If
    84. Case "Juli"
    85. monat = 7
    86. Case "August"
    87. monat = 8
    88. Case "September"
    89. monat = 9
    90. If tage > 30 Then
    91. MessageBox.Show("September" & " hat nur 30 Tage")
    92. Exit Sub
    93. End If
    94. Case "Oktober"
    95. monat = 10
    96. Case "November"
    97. monat = 11
    98. If tage > 30 Then
    99. MessageBox.Show("November" & " hat nur 30 Tage")
    100. Exit Sub
    101. End If
    102. Case "Dezember"
    103. monat = 12
    104. End Select
    105. j = New DateTime(jahr, monat, tage)
    106. lblDatumAnzeige.Text = j.ToString(" dddd dd MMMM yyyy")
    107. Me.tageImMonat = {lbl1, lbl2, lbl3, lbl4, lbl5, lbl6, lbl7, lbl8, lbl9, lbl10,
    108. lbl11, lbl12, lbl13, lbl14, lbl15, lbl16, lbl17, lbl18, lbl19, lbl20,
    109. lbl21, lbl22, lbl23, lbl24, lbl25, lbl26, lbl27, lbl28, lbl29, lbl30,
    110. lbl31, lbl32, lbl33, lbl34, lbl35, lbl36, lbl37}
    111. For del = 0 To tageImMonat.Length - 1
    112. tageImMonat(del).Text = ""
    113. tageImMonat(del).Visible = False
    114. Next
    115. Dim ersteTagImMonat As New DateTime(jahr, monat, 1)
    116. startTag = ersteTagImMonat.DayOfWeek
    117. Select Case startTag
    118. Case 0 'Sonntag
    119. startTag = 6
    120. Case 1 'Montag
    121. startTag = 0
    122. Case 2 'Diestag
    123. startTag = 1
    124. Case 3 'Mittwoch
    125. startTag = 2
    126. Case 4 'Donnerstag
    127. startTag = 3
    128. Case 5 'Freitag
    129. startTag = 4
    130. Case 6 'Samstag
    131. startTag = 5
    132. End Select
    133. Dim dt = New Date(jahr, monat, tage).ToString
    134. Dim a As Integer
    135. lblFeiertag.Text = GetFeiertag(CDate(dt)).ToString
    136. For x = 1 To DateTime.DaysInMonth(jahr, monat)
    137. For y = 1 To x
    138. tageImMonat(x - 1 + startTag).Text = y.ToString
    139. tageImMonat(x - 1 + startTag).Visible = True
    140. tageImMonat(x).ForeColor = Color.Black
    141. tageImMonat(x).Font = New Font("Microsoft Sans Serif", 10, FontStyle.Regular)
    142. Next
    143. Next
    144. For x = 0 To tageImMonat.Length - 1
    145. If jahr = DateTime.Now.Year And monat = DateTime.Now.Month And tageImMonat(x).Text = DateTime.Now.Day.ToString Then
    146. tageImMonat(x).ForeColor = Color.DodgerBlue
    147. tageImMonat(x).Font = New Font("Microsoft Sans Serif", 14, FontStyle.Bold)
    148. Else
    149. tageImMonat(x).ForeColor = Color.Black
    150. tageImMonat(x).Font = New Font("Microsoft Sans Serif", 10, FontStyle.Regular)
    151. End If
    152. Next
    153. End Sub
    154. #Region "Feiertage"
    155. Public Enum Feiertage
    156. None = 0
    157. Neujahr = 1 + (1 << 16)
    158. 'HeiligeDreiKoenige = 6 + (1 << 16)
    159. Maifeiertag = 1 + (5 << 16)
    160. 'MariaHimmelfahrt = 15 + (8 << 16)
    161. TagDerDeutschenEinheit = 3 + (10 << 16)
    162. Reformationstag = 31 + (10 << 16)
    163. 'Allerheiligen = 1 + (11 << 16)
    164. ErsterWeihnachtsfeiertag = 25 + (12 << 16)
    165. ZweiterWeihnachtsfeiertag = 26 + (12 << 16)
    166. Karfreitag = 2
    167. 'Weiberfastnacht
    168. 'Rosenmontag
    169. 'Aschermittwoch
    170. Ostersonntag
    171. Ostermontag
    172. ChristiHimmelfahrt
    173. Pfingstsonntag
    174. Pfingstmontag
    175. 'Fronleichnam
    176. 'BussUndBettag
    177. End Enum
    178. Private _HolyDays As New HashSet(Of Integer)(DirectCast([Enum].GetValues(GetType(Feiertage)), Integer()))
    179. Public Function GetFeiertag(ByVal datum As DateTime) As Feiertage
    180. datum = datum.Date
    181. Dim n = datum.Day + (datum.Month << 16)
    182. If _HolyDays.Contains(n) Then Return DirectCast(n, Feiertage)
    183. Dim ostern As DateTime = GetOstersonntag(datum.Year)
    184. 'If datum = ostern.AddDays(-45) Then Return Feiertage.Weiberfastnacht
    185. 'If datum = ostern.AddDays(-41) Then Return Feiertage.Rosenmontag
    186. 'If datum = ostern.AddDays(-39) Then Return Feiertage.Aschermittwoch
    187. If datum = ostern.AddDays(-2) Then Return Feiertage.Karfreitag
    188. If datum = ostern Then Return Feiertage.Ostersonntag
    189. If datum = ostern.AddDays(1) Then Return Feiertage.Ostermontag
    190. If datum = ostern.AddDays(39) Then Return Feiertage.ChristiHimmelfahrt
    191. If datum = ostern.AddDays(49) Then Return Feiertage.Pfingstsonntag
    192. If datum = ostern.AddDays(50) Then Return Feiertage.Pfingstmontag
    193. 'If datum = ostern.AddDays(60) Then Return Feiertage.Fronleichnam
    194. 'With New DateTime(datum.Year, 11, 26)
    195. ' If datum = .AddDays(-(4 + .DayOfWeek)) Then Return Feiertage.BussUndBettag
    196. 'End With
    197. Return Feiertage.None
    198. End Function
    199. Public Function GetOstersonntag(ByVal year As Integer) As DateTime
    200. Dim a As Integer = year Mod 19
    201. Dim b As Integer = year \ 100
    202. Dim c As Integer = (8 * b + 13) \ 25 - 2
    203. Dim d As Integer = b - (year \ 400) - 2
    204. Dim e As Integer = (19 * (year Mod 19) + ((15 - c + d) Mod 30)) Mod 30
    205. If e = 28 Then
    206. If a > 10 Then
    207. e = 27
    208. End If
    209. ElseIf e = 29 Then
    210. e = 28
    211. End If
    212. Dim f As Integer = (d + 6 * e + 2 * (year Mod 4) + 4 * (year Mod 7) + 6) Mod 7
    213. Return New DateTime(year, 3, 22).AddDays(e + f)
    214. End Function
    215. Private Sub lbl1_Click(sender As Object, e As EventArgs) Handles lbl1.Click, lbl9.Click, lbl8.Click, lbl7.Click, lbl6.Click, lbl5.Click, lbl4.Click, lbl37.Click, lbl36.Click, lbl35.Click, lbl34.Click, lbl33.Click, lbl32.Click, lbl31.Click, lbl30.Click, lbl3.Click, lbl29.Click, lbl28.Click, lbl27.Click, lbl26.Click, lbl25.Click, lbl24.Click, lbl23.Click, lbl22.Click, lbl21.Click, lbl20.Click, lbl2.Click, lbl19.Click, lbl18.Click, lbl17.Click, lbl16.Click, lbl15.Click, lbl14.Click, lbl13.Click, lbl12.Click, lbl11.Click, lbl10.Click
    216. cbTage.Text = DirectCast(sender, Label).Text
    217. End Sub
    218. #End Region
    219. End Class

    L.G. Willi

    tut mir leid aber ich kann eure antworten nicht sehen.
    was läuft hier schief.
    werde das thema neu eröffnen.

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „papawt“ ()

    Bearbeite mal bitte Deinen Beitrag über [Erweiterte Bearbeitung] und [Vorschau] solange, bis der Code korrekt angezeigt wird.
    Wenn ich das richtig erkenne, lässt Du Deinen Kalender per Labels anzeigen. Dementsprechend musst Du aus der Feiertagsberechnung Monat und Tag raussuchen und das entsprechende Label umgestalten. Wo ist die Schwierigkeit? Ah, gefunden:

    VB.NET-Quellcode

    1. If jahr = DateTime.Now.Year And monat = DateTime.Now.Month And tageImMonat(x).Text = DateTime.Now.Day.ToString Then
    1. Gibt es auch statt Now das Today. Und zum anderen: Warum mit heute vergleichen? Du musst doch ausgewählten Monat und Jahr als Vergleich hernehmen, um die Feiertage des gezeigten Monats anzeigen zu lassen.

    btw: Schau mal ggf. für die Feiertagsberechnung nach der Spencer-Formel.
    An dem Code gäbe es ein paar Verbesserungsmöglichkeiten. Ist die Frage, wo Deine Prioritäten sind.

    ##########

    Nee, nicht neu erstellen, bringt doch nix. Gibt ja bis jetzt erst eine Antwort.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    @VaporiZed Jou.
    @papawt Dein Code oben ist immer noch nicht formatiert. ;(
    Im Button Erweiterte Antwort findest Du einen Vorschau-Button.
    In Deiner Zeile

    VB.NET-Quellcode

    1. If jahr = DateTime.Now.Year And monat = DateTime.Now.Month And tageImMonat(x).Text = DateTime.Now.Day.ToString Then
    musst Du einfach DateTime.Now.Day.ToString der Reihe nach durch alle Feiertage ersetzen.
    Pack also alle Feiertage in ein Array, diesmal bitte vom Typ DateTime und klickere sie der Reihe nach durch.
    Feddich.
    =====
    Kopiere den Code aus dem Studio einfach in den Post.
    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).
    VB-Fragen über PN / Konversation werden ignoriert!
    @papawt Du brauchst ja nufr die für den aktuellen Monat.
    Also:

    VB.NET-Quellcode

    1. Dim Feiertage As List(Of DateTime)
    2. For i = 1 To Ultimo
    3. Dim testDate = New DateTime(JAHR, MONAT, i)
    4. If GetFeiertag(testDate) <> Feiertage.None Then
    5. Feiertage.Add(testDate)
    6. End If
    7. Next
    Ultimo ist der letzte Tag des jeweiligen Monats (28, 29, 30, 31), je nachdem.
    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).
    VB-Fragen über PN / Konversation werden ignoriert!
    Ah, Durchblick, da bist Du.
    Anstatt der Funktion GetFeiertag (örks ... englisch+deutsch) ein Datum zu übergeben und daraufhin einen Enum-Wert zu erhalten, solltest Du lieber eine List(Of Date) hernehmen und da alle Feiertage reinhauen.

    VB.NET-Quellcode

    1. Dim ListOfHolidayDates As New List(Of Date)
    2. '...
    3. ListOfHolidayDates.Add(Date.Parse("01.01.2019"))
    4. ListOfHolidayDates.Add(Date.Parse("06.01.2019"))
    5. ListOfHolidayDates.Add(EasterSunday.AddDays(-2))
    6. '...

    Damit kann ich besser arbeiten als ein Datum vorzugeben und zurückzubekommen, ob es ein Feiertag ist (und welcher) oder nicht. Alternativ kannst Du Dir auch eine List(Of Holiday) machen, bei der Du ne eigene Holiday-Klasse machst, in der eben nicht nur das Datum, sondern auch die Bezeichnung des Feiertags steht. Ich arbeite mit beidem, um Dienstpläne erstellen zu lassen oder Erinnerungen usw.
    btw: Ich habe auch ein eigenes MonthCalendar-CE, basierend auf einem DGV. Da geht das Anklicken und Einfärben leichter.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    Wessen Code bekommst Du nicht mit Deinem zusammen und woran scheitert es genau?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    Hi

    deinen Code

    VB.NET-Quellcode

    1. Dim Feiertage As List(Of DateTime)
    2. For i = 1 To Ultimo
    3. Dim testDate = New DateTime(JAHR, MONAT, i)
    4. If GetFeiertag(testDate) <> Feiertage.None Then
    5. Feiertage.Add(testDate)
    6. End If
    7. Next

    weis ich nicht wo ich diesen in meinem Code einfügen soll.

    L.G. Willi
    @papawt Im Kontext dieser Bemerkung offensichtlich unmittelbar davor.

    RodFromGermany schrieb:

    VB.NET-Quellcode

    1. If jahr = DateTime.Now.Year And monat = DateTime.Now.Month And tageImMonat(x).Text = DateTime.Now.Day.ToString Then
    ...
    Pack also alle Feiertage in ein Array, diesmal bitte vom Typ DateTime und klickere sie der Reihe nach durch.
    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).
    VB-Fragen über PN / Konversation werden ignoriert!
    Hi

    VaporiZed entschuldige, ich meine den Code von RodFromGermany.
    @RodFromGermany hab den Code so eingefügt.

    VB.NET-Quellcode

    1. Sub labelanzeige()
    2. jahr = CInt(cbJahre.Text)
    3. tage = CInt(cbTage.Text)
    4. Select Case cbMonate.Text
    5. Case "Januar"
    6. monat = 1
    7. Case "Februar"
    8. monat = 2
    9. If Date.IsLeapYear(jahr) = False And tage > 28 Then
    10. MessageBox.Show("Februar" & " ist kein Schaltjahr")
    11. Exit Sub
    12. Else
    13. If Date.IsLeapYear(jahr) = True And tage > 29 Then
    14. MessageBox.Show("Februar" & " hat nur 29 Tage")
    15. Exit Sub
    16. End If
    17. End If
    18. Case "März"
    19. monat = 3
    20. Case "April"
    21. monat = 4
    22. If tage > 30 Then
    23. MessageBox.Show("April" & " hat nur 30 Tage")
    24. Exit Sub
    25. End If
    26. Case "Mai"
    27. monat = 5
    28. Case "Juni"
    29. monat = 6
    30. If tage > 30 Then
    31. MessageBox.Show("Juni" & " hat nur 30 Tage")
    32. Exit Sub
    33. End If
    34. Case "Juli"
    35. monat = 7
    36. Case "August"
    37. monat = 8
    38. Case "September"
    39. monat = 9
    40. If tage > 30 Then
    41. MessageBox.Show("September" & " hat nur 30 Tage")
    42. Exit Sub
    43. End If
    44. Case "Oktober"
    45. monat = 10
    46. Case "November"
    47. monat = 11
    48. If tage > 30 Then
    49. MessageBox.Show("November" & " hat nur 30 Tage")
    50. Exit Sub
    51. End If
    52. Case "Dezember"
    53. monat = 12
    54. End Select
    55. j = New DateTime(jahr, monat, tage)
    56. lblDatumAnzeige.Text = j.ToString(" dddd dd MMMM yyyy")
    57. Me.tageImMonat = {lbl1, lbl2, lbl3, lbl4, lbl5, lbl6, lbl7, lbl8, lbl9, lbl10,
    58. lbl11, lbl12, lbl13, lbl14, lbl15, lbl16, lbl17, lbl18, lbl19, lbl20,
    59. lbl21, lbl22, lbl23, lbl24, lbl25, lbl26, lbl27, lbl28, lbl29, lbl30,
    60. lbl31, lbl32, lbl33, lbl34, lbl35, lbl36, lbl37}
    61. For del = 0 To tageImMonat.Length - 1
    62. tageImMonat(del).Text = ""
    63. tageImMonat(del).Visible = False
    64. Next
    65. Dim ersteTagImMonat As New DateTime(jahr, monat, 1)
    66. startTag = ersteTagImMonat.DayOfWeek
    67. Select Case startTag
    68. Case 0 'Sonntag
    69. startTag = 6
    70. Case 1 'Montag
    71. startTag = 0
    72. Case 2 'Diestag
    73. startTag = 1
    74. Case 3 'Mittwoch
    75. startTag = 2
    76. Case 4 'Donnerstag
    77. startTag = 3
    78. Case 5 'Freitag
    79. startTag = 4
    80. Case 6 'Samstag
    81. startTag = 5
    82. End Select
    83. Dim dt = New Date(jahr, monat, tage).ToString
    84. lblFeiertag.Text = GetFeiertag(CDate(dt)).ToString
    85. Dim Feiertage As List(Of DateTime)
    86. Dim Ultimo As Integer
    87. For i = 1 To Ultimo
    88. Dim testDate = New DateTime(jahr, monat, i)
    89. If GetFeiertag(testDate) <> 0 Then
    90. Feiertage.Add(testDate)
    91. End If
    92. Next
    93. For x = 1 To DateTime.DaysInMonth(jahr, monat)
    94. For y = 1 To x
    95. tageImMonat(x - 1 + startTag).Text = y.ToString
    96. tageImMonat(x - 1 + startTag).Visible = True
    97. tageImMonat(x).ForeColor = Color.Black
    98. tageImMonat(x).Font = New Font("Microsoft Sans Serif", 10, FontStyle.Regular)
    99. Next
    100. Next
    101. For x = 0 To tageImMonat.Length - 1
    102. If jahr = DateTime.Now.Year And monat = DateTime.Now.Month And tageImMonat(x).Text = DateTime.Now.Day.ToString Then
    103. tageImMonat(x).ForeColor = Color.DodgerBlue
    104. tageImMonat(x).Font = New Font("Microsoft Sans Serif", 14, FontStyle.Bold)
    105. Else
    106. tageImMonat(x).ForeColor = Color.Black
    107. tageImMonat(x).Font = New Font("Microsoft Sans Serif", 10, FontStyle.Regular)
    108. End If
    109. Next
    110. End Sub


    Jetzt ist Feiertage Grün Unterstrichen mit folgender Meldung.

    " Dim Feiertage variable wird verwendet bevor ihr ein Wert
    zugewiesen wird.Zur Laufzeit kann eine Nullverweisausnahme auftreten."

    Ich Kopiere den Code im Studio mit Rechter Maustaste und füge in
    auch mit rechter Maustaste ein.
    Warum hab ich diese Leerzeilen drin, denn im Studio hab ich keine.

    L.G. Willi
    Noch ist es eine Warnung, kein Fehler. Aber es wird zur Laufzeit ein Fehler, weil es richtig heißt: Dim Feiertage As New List(Of DateTime)
    Dim Feiertage As List(Of DateTime) ist nur eine Bekanntgabe an den Compiler, was Feiertage ist, damit er später was damit anfangen kann und entsprechende Codezeilen inhaltlich überprüfen kann. Aber dass wirklich eine Liste angelegt wird, erfolgt durch das Schlüsselwort New.

    bzgl. Leerzeilen: Welches Visual Studio verwendest Du? Wenn ich meinen Code hierher kopiere oder Deinen Code mit lauter Leerzeilen bei mir ins VS2019 reinkopiere, gibt's keine unnötigen Leerzeilen.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.

    papawt schrieb:

    hab den Code so eingefügt
    Ja und?

    RodFromGermany schrieb:

    und klickere sie der Reihe nach durch.
    Und:
    Ich habe keine Lust, eine Stunde zu scrollen, bis ich am Ende Deines Posts bin.
    Editiere Deine Posts (Plural), mach die Leerzeichen raus und pack um den Code herum einen
    Spoiler
    [ spoiler ][ vbnet ]DEIN CODE[ /vbnet ][ /spoiler ](ohne Leerzeichen)
    .
    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).
    VB-Fragen über PN / Konversation werden ignoriert!
    Hi

    @VaporiZed : habe Visual Studio Community 2017.
    Bei mir im Code sin auch keine Leerzeilen.
    wennich aber den Code kopiere und ins Forum einfüge
    kommen die ganzen Leerzeilen.
    Und danke für die Info.

    @RodFromGermany
    und klickere sie der Reihe nach durch,
    hab ich so versucht
    Spoiler anzeigen

    VB.NET-Quellcode

    1. If tageImMonat(x).Text = Feiertage.ToString Then
    2. tageImMonat(x).ForeColor = Color.Red
    3. tageImMonat(x).Font = New Font("Microsoft Sans Serif", 14, FontStyle.Bold)
    4. 'Else
    5. ' tageImMonat(x).ForeColor = Color.Black
    6. ' tageImMonat(x).Font = New Font("Microsoft Sans Serif", 10, FontStyle.Regular)
    7. End If


    aber ohne erfolg.

    L.G. Willi
    @papawt Der Reihe nach durchklickern heißt, dass Du jeden Feiertag des Monats
    Arbeite mit Daten, nicht mit Controls.
    In der List liegen DateTime-Instanzen, die oder deren Date-Komponente kannst Du als solche vergleichen, arbeite damit!
    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).
    VB-Fragen über PN / Konversation werden ignoriert!