From what I understand, you want to highlight the next 10 days in the month calendar for every month.
If that's right then, I think what you really need is the MonthlyBoldedDates instead of BoldedDates
And then you don't need the TransactionMonthCalendar_DateChanged event handler and the tracking of last selected month etc.
So only this much:
vb.net Code:
Protected Sub LoadMonth()
Dim TransactDates As New List(Of Date)
Dim dt As Date = TransactionMonthCalendar.SelectionRange.Start
For i = 0 To Math.Min(dt.Day + 10, 31) - dt.Day
TransactDates.Add(dt.AddDays(i))
Next
TransactionMonthCalendar.MonthlyBoldedDates = TransactDates.ToArray
End Sub
Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not DesignMode Then
LoadMonth()
End If
End Sub
Private Sub TransactionMonthCalendar_DateChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles TransactionMonthCalendar.DateChanged
' not required
End Sub