vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Farbe eines speziellen Tages im Monatskalender ändern 
Autor: DotNetErbse
Datum: 29.05.13 15:18

hi,

also... wenn es nur um die Darstellung geht, hier mal ein Grundgerüst:

Ist nur ein Ansatz, die Eventhandler fehlen natürlich noch...
Du positionierst ein Label über den MonthCalendar...


MonthCalendar1, Button1



Public Class Form1
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button1.Click
 
        For i As Integer = 1 To 31
            AddRedLabel(CDate(i.ToString & ".05.2013"))
        Next
 
    End Sub
 
    Private Sub AddRedLabel(ByVal d As Date)
 
        If d.Month = MonthCalendar1.SelectionRange.Start.Month And d.Year = _
          MonthCalendar1.SelectionRange.End.Year Then
 
            Dim lbl As New Label
            With lbl
                .Width = 24
                .Height = 15
                .ForeColor = Color.White
                .BackColor = Color.Red
                .Text = d.Day.ToString
                .TextAlign = ContentAlignment.MiddleRight
            End With
 
            setDate(lbl, CInt(DateToWeek(d).Substring(4, 2)) - CInt(DateToWeek( _
              CDate("01." & d.Month.ToString & "." & d.Year)).Substring(4, 2)) _
              + 1, Weekday(d, FirstDayOfWeek.Monday))
            MonthCalendar1.Controls.Add(lbl)
        End If
    End Sub
 
    Private Sub setDate(ByRef lbl As Label, ByVal zeile As Integer, ByVal _
      spalte As Integer)
 
        With lbl
            .Top = 50 + (lbl.Height * (zeile - 1))
            .Left = 2 + (lbl.Width * (spalte - 1))
        End With
 
 
    End Sub
 
 
    ' die folgenden Funktionen stammen aus dem Tipp-Archiv von vb@rchiv.
 
    Public Function DateToWeek(ByVal dDate As Date) As String
        ' Startdatum der ersten Kalenderwoche des Jahres und Folgejahres 
        ' berechnen
        Dim dThisYear As Date = CalendarWeek(1, dDate.Year)
        Dim dNextYear As Date = CalendarWeek(1, dDate.Year + 1)
 
        ' Prüfen, ob Datum zur ersten Woche des Folgejahres gehört
        If dDate >= dNextYear Then
            ' Rückgabe: KW 1 des Folgejahres
            Return dDate.Year + 1 & "01"
        ElseIf dDate < dThisYear Then
            ' Falls das Datum noch zu einer KW aus dem letzten Jahr zählt
            Return dDate.Year - 1 & DatePart(DateInterval.WeekOfYear, _
              New Date(dDate.Year - 1, 12, 28), FirstDayOfWeek.Monday, _
              FirstWeekOfYear.FirstFourDays)
        Else
            ' KW = Differenz zum ersten Tag der ersten Woche
            Return dDate.Year & Format$(dDate.Subtract(dThisYear).Days \ 7 + 1, _
              "00")
        End If
    End Function
 
    ''' <summary>
    ''' Ermittelt das Datum einer bestimmten Kalenderwoche 
    ''' eines beliebigen Jahres
    ''' </summary>
    ''' <param name="nWeek">Kalenderwoche, zu der das Wochenanfangsdatum 
    ''' ermittelt werden soll</param>
    ''' <param name="nYear">Jahresangabe</param>
    ''' <returns>Wochenanfangsdatum (Date)</returns>
    ''' <remarks></remarks>
    Public Function CalendarWeek(ByVal nWeek As Integer, _
      ByVal nYear As Integer) As Date
 
        ' Wochentag des 4. Januar des Jahres ermitteln
        Dim dStart As New Date(nYear, 1, 4)
        Dim nDay As Integer = (dStart.DayOfWeek + 6) Mod 7 + 1
 
        ' Beginn der 1. KW des Jahres
        Dim dFirst As Date = dStart.AddDays(1 - nDay)
 
        ' Gesuchte KW ermitteln
        Return dFirst.AddDays((nWeek - 1) * 7)
    End Function
 
End Class

Mit freundlichen Gr??en
DotNetErbse


[Es hei?t Paket und nicht Packet, auch wenn Standard augenscheinlich von Standar(t)e kommt,hei?t es dennoch Standar(d)]

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Farbe eines speziellen Tages im Monatskalender ändern5.763cgiesen15.05.13 10:40
Re: Farbe eines speziellen Tages im Monatskalender ändern4.503effeff15.05.13 12:22
Re: Farbe eines speziellen Tages im Monatskalender ändern4.540cgiesen15.05.13 12:25
Re: Farbe eines speziellen Tages im Monatskalender ändern4.498Brian15.05.13 17:11
Re: Farbe eines speziellen Tages im Monatskalender ändern4.471cgiesen16.05.13 13:31
Re: Farbe eines speziellen Tages im Monatskalender ändern4.499ModeratorDaveS16.05.13 13:42
Re: Farbe eines speziellen Tages im Monatskalender ändern4.449cgiesen16.05.13 13:46
Re: Farbe eines speziellen Tages im Monatskalender ändern4.515ModeratorFZelle16.05.13 14:28
Re: Farbe eines speziellen Tages im Monatskalender ändern4.438cgiesen16.05.13 15:12
Re: Farbe eines speziellen Tages im Monatskalender ändern4.487ModeratorFZelle16.05.13 15:36
Re: Farbe eines speziellen Tages im Monatskalender ändern4.458cgiesen16.05.13 15:43
Re: Farbe eines speziellen Tages im Monatskalender ändern4.407cgiesen16.05.13 15:51
Re: Farbe eines speziellen Tages im Monatskalender ändern4.485cgiesen16.05.13 16:55
Re: Farbe eines speziellen Tages im Monatskalender ändern4.472DotNetErbse29.05.13 15:18
MonthCalendarWithWarningDates (Teil 1)4.496Manfred X29.05.13 20:17
MonthCalendarWithWarningDates (Teil 2)4.472Manfred X29.05.13 20:19

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel