Unplanned
Last Updated: 19 Jun 2017 11:14 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: Scheduler/Reminder
Type: Bug Report
1
To reproduce:

Appointment a1 = new Appointment(DateTime.Today.AddHours(10).AddMinutes(30), TimeSpan.FromMinutes(30), "A1");
Appointment a2 = new Appointment(DateTime.Today.AddHours(11) , TimeSpan.FromMinutes(30), "A2");
Appointment a3 = new Appointment(DateTime.Today.AddHours(11).AddMinutes(30), TimeSpan.FromMinutes(30), "A3");
this.radScheduler1.Appointments.Add(a1);
this.radScheduler1.Appointments.Add(a2);
this.radScheduler1.Appointments.Add(a3); 
this.radScheduler1.ActiveViewType = SchedulerViewType.Timeline;   
SchedulerTimelineView timelineView = radScheduler1.GetTimelineView();
timelineView.ShowTimescale(Timescales.Minutes);
timelineView.GetScaling().DisplayedCellsCount = 10;

Please refer to the attached sample project which incorrect behavior when scrolling is illustrated in the attached gif file.

Workaround: instead of specifying 30 minutes duration of an appointment, use 29 minutes and 59 seconds.
Unplanned
Last Updated: 19 Jun 2017 10:38 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: Scheduler/Reminder
Type: Bug Report
1
Workaround: create a derivative of the EditAppointmentDialog. Open the designer and adjust the form's height and button's position. Then replace the default dialog with the custom one: 

public RadForm1()
{
    InitializeComponent();
    this.radScheduler1.AppointmentEditDialogShowing += radScheduler1_AppointmentEditDialogShowing;
}
CustomEditAppointmentDialog dialog;
private void radScheduler1_AppointmentEditDialogShowing(object sender, Telerik.WinControls.UI.AppointmentEditDialogShowingEventArgs e)
{
    if (dialog==null)
    {
        dialog = new CustomEditAppointmentDialog();
    }
    e.AppointmentEditDialog = dialog;
}
Completed
Last Updated: 07 Jun 2017 10:47 by ADMIN
To reproduce:
Sub New() 
    InitializeComponent()

    Dim colors() As Color = {Color.LightBlue, Color.LightGreen, Color.LightYellow, Color.Red, _
        Color.Orange, Color.Pink, Color.Purple, Color.Peru, Color.PowderBlue}
    Dim names() As String = {"Alan Smith", "Anne Dodsworth", "Boyan Mastoni", "Richard Duncan", "Maria Shnaider"}
    For i As Integer = 0 To names.Length - 1
        Dim resource As New Telerik.WinControls.UI.Resource()
        resource.Id = New EventId(i)
        resource.Name = names(i)
        resource.Color = colors(i)
        Me.RadScheduler1.Resources.Add(resource)
    Next i
    Me.RadScheduler1.GroupType = GroupType.Resource
    Me.RadScheduler1.ActiveView.ResourcesPerView = Me.RadScheduler1.Resources.Count

    Me.RadScheduler1.ActiveViewType = SchedulerViewType.Timeline

    Dim rand As New Random
    For index = 1 To 20
        Dim a As New Appointment(DateTime.Now.AddDays(index), TimeSpan.FromHours(2), "A" & index)
        a.ResourceId = Me.RadScheduler1.Resources(rand.Next(0, Me.RadScheduler1.Resources.Count)).Id
        Me.RadScheduler1.Appointments.Add(a) 
    Next
    
    Dim timelineView As SchedulerTimelineView = Me.RadScheduler1.GetTimelineView()
     
    Dim oneMinute As New OneMinuteTimescale()
    timelineView.SchedulerTimescales.Add(oneMinute)

    oneMinute.Visible = True 
End Sub

Public Class OneMinuteTimescale
Inherits MinutesTimescale
    Public Overrides ReadOnly Property Name As String
        Get
            Return "OneMinuteTimescale"
        End Get
    End Property
    Public Overrides ReadOnly Property ScalingFactor() As Integer
        Get
            Return 1
        End Get
    End Property
End Class

Workaround: decrease the range: 

 timelineView.RangeStartDate = DateTime.Today
 timelineView.RangeEndDate = timelineView.RangeStartDate.AddDays(1)
Completed
Last Updated: 30 May 2017 08:21 by ADMIN
How to reproduce:

Public Class Form1
    Sub New()

        InitializeComponent()

    End Sub

    Protected Overrides Sub OnLoad(e As EventArgs)
        MyBase.OnLoad(e)

        Me.SetUpScheduler()

        For i As Integer = 0 To 0
            Dim app As New Appointment(DateTime.Now.AddHours(1), TimeSpan.FromMinutes(60), "Summary" & i, "Description1")
            app.ResourceId = Me.RadScheduler1.Resources(i).Id
            Me.RadScheduler1.Appointments.Add(app)

            Dim app2 As New Appointment(DateTime.Now.AddHours(3), TimeSpan.FromMinutes(60), "Summary" & i, "Description2")
            app2.BackgroundId = 2
            app2.ResourceId = Me.RadScheduler1.Resources(i).Id
            Me.RadScheduler1.Appointments.Add(app2)

            Dim recurringAppointment As New Appointment(DateTime.Now, TimeSpan.FromMinutes(60), "Recurring" & i, "Recurring Appointment")
            recurringAppointment.BackgroundId = 4
            recurringAppointment.ResourceId = Me.RadScheduler1.Resources(i).Id
            recurringAppointment.RecurrenceRule = New DailyRecurrenceRule(DateTime.Now, 1, 10)

            Me.RadScheduler1.Appointments.Add(recurringAppointment)
        Next

        'AddHandler Me.RadScheduler1.CellPrintElementFormatting, AddressOf RadScheduler1_CellPrintElementFormatting

    End Sub

    Private Sub SetUpScheduler()
        Dim colors As Color() = New Color() {Color.LightBlue, Color.LightGreen, Color.LightYellow, Color.Red, Color.Orange, Color.Pink, _
            Color.Purple, Color.Peru, Color.PowderBlue}

        'Dim names As String() = New String() {"Alan Smith", "Anne Dodsworth", "Boyan Mastoni", "Richard Duncan", "Maria Schneider"}
        Dim names As String() = New String() {"Rick Astley"}

        For i As Integer = 0 To names.Length - 1
            Dim resource As New Resource()
            resource.Id = New EventId(i)
            resource.Name = names(i)
            resource.Color = colors(i)
            Me.RadScheduler1.Resources.Add(resource)
        Next

        Me.RadScheduler1.ActiveView.ResourcesPerView = 1
        Me.RadScheduler1.GroupType = GroupType.Resource

        Me.RadSchedulerNavigator1.SchedulerNavigatorElement.TimeZonesElementLayout.Visibility = ElementVisibility.Collapsed
        Me.RadSchedulerNavigator1.ShowWeekendCheckBox.Visibility = ElementVisibility.Collapsed
        Me.RadSchedulerNavigator1.SchedulerNavigatorElement.MonthViewButton.Visibility = ElementVisibility.Collapsed
        Me.RadSchedulerNavigator1.SchedulerNavigatorElement.TimelineViewButtonVisible = False
    End Sub

    Private Sub RadButton1_Click(sender As Object, e As EventArgs) Handles RadButton1.Click
        Me.PrintScheduler(Me.RadScheduler1)
    End Sub

    Private Sub PrintScheduler(radScheduler As RadScheduler)
        Dim doc As RadPrintDocument = New RadPrintDocument
        doc.AssociatedObject = radScheduler

        Dim schedulerPrintStyle As Telerik.WinControls.UI.SchedulerPrintStyle = Nothing
        Select Case Me.RadScheduler1.ActiveViewType
            Case SchedulerViewType.Day
                schedulerPrintStyle = New SchedulerDailyPrintStyle()
                'schedulerPrintStyle = New CustomRadSchedulerDailyPrintStyle()
            Case SchedulerViewType.Week, SchedulerViewType.WorkWeek
                schedulerPrintStyle = New SchedulerWeeklyCalendarPrintStyle()
                'schedulerPrintStyle = New CustomSchedulerWeeklyCalendarPrintStyle()
        End Select

        schedulerPrintStyle.DateStartRange = radScheduler.ActiveView.StartDate
        schedulerPrintStyle.DateEndRange = radScheduler.ActiveView.EndDate
        schedulerPrintStyle.TimeStartRange = TimeSpan.FromMinutes(5)
        schedulerPrintStyle.TimeEndRange = TimeSpan.FromHours(23).Add(TimeSpan.FromMinutes(59))
        schedulerPrintStyle.AppointmentFont = New Font("Consolas", 8.5)
        schedulerPrintStyle.GroupType = SchedulerPrintGroupType.Resource



        AddHandler schedulerPrintStyle.CellElementFormatting, AddressOf radSchedWork_PrintSchedulerCellElementFormatting

        radScheduler.PrintStyle = schedulerPrintStyle
        radScheduler.PrintPreview()
    End Sub

    Private Sub radSchedWork_PrintSchedulerCellElementFormatting(sender As Object, e As PrintSchedulerCellEventArgs)
        e.CellElement.BackColor = Color.White
        e.CellElement.DrawFill = False

        Dim cell As SchedulerPrintCellElement = TryCast(e.CellElement, SchedulerPrintCellElement)
        If cell IsNot Nothing Then
            Dim msg As String = "PrintSchedulerCellElementFormatting for Date {0}"
            Debug.Print(String.Format(msg, e.CellElement.Date))

            'If cell.DateFormat = "hh:mm" Then
            '    cell.DateFormat = "hh:mm tt"
            'ElseIf cell.DateFormat = "dd MMM" Then
            '    cell.DateFormat = "dd ddd"
            'Else


            e.CellElement.DrawFill = True
            If e.CellElement.[Date].Hour Mod 2 = 0 Then
                If e.CellElement.[Date].Day Mod 2 = 0 Then
                    e.CellElement.BackColor = Color.LightSalmon
                Else
                    e.CellElement.BackColor = Color.LightBlue
                End If

            Else
                e.CellElement.BackColor = Color.LightGreen
            End If
            'End If
        End If
    End Sub

    Private Sub RadScheduler1_CellFormatting(sender As Object, e As SchedulerCellEventArgs) Handles RadScheduler1.CellFormatting
        'reset all properties for cells that may be changed here
        e.CellElement.BackColor = Color.White
        e.CellElement.DrawFill = False

        If e.CellElement.[Date].Hour Mod 2 = 0 Then
            e.CellElement.DrawFill = True

            If e.CellElement.[Date].Day Mod 2 = 0 Then
                e.CellElement.BackColor = Color.LightSalmon
            Else
                e.CellElement.BackColor = Color.LightBlue
            End If

        Else
            e.CellElement.BackColor = Color.LightGreen
        End If
    End Sub
End Class

Workaround: Private Sub PrintScheduler(radScheduler As RadScheduler)
    Dim doc As RadPrintDocument = New RadPrintDocument
    doc.AssociatedObject = radScheduler

    Dim schedulerPrintStyle As Telerik.WinControls.UI.SchedulerPrintStyle = Nothing
    Select Case Me.RadScheduler1.ActiveViewType
        Case SchedulerViewType.Day
            'schedulerPrintStyle = New SchedulerDailyPrintStyle()
            schedulerPrintStyle = New CustomRadSchedulerDailyPrintStyle()
        Case SchedulerViewType.Week, SchedulerViewType.WorkWeek
            'schedulerPrintStyle = New SchedulerWeeklyCalendarPrintStyle()
            schedulerPrintStyle = New CustomSchedulerWeeklyCalendarPrintStyle()
    End Select

    schedulerPrintStyle.DateStartRange = radScheduler.ActiveView.StartDate
    schedulerPrintStyle.DateEndRange = radScheduler.ActiveView.EndDate
    schedulerPrintStyle.TimeStartRange = TimeSpan.FromMinutes(5)
    schedulerPrintStyle.TimeEndRange = TimeSpan.FromHours(23).Add(TimeSpan.FromMinutes(59))
    schedulerPrintStyle.AppointmentFont = New Font("Consolas", 8.5)
    schedulerPrintStyle.GroupType = SchedulerPrintGroupType.Resource



    AddHandler schedulerPrintStyle.CellElementFormatting, AddressOf radSchedWork_PrintSchedulerCellElementFormatting

    radScheduler.PrintStyle = schedulerPrintStyle
    radScheduler.PrintPreview()
End Sub

Public Class CustomRadSchedulerDailyPrintStyle
    Inherits SchedulerDailyPrintStyle

    Private currentPage As Integer

    Public Overrides Sub DrawPage(graphics As Graphics, drawingArea As Rectangle, pageNumber As Integer)
        Me.currentPage = pageNumber
        MyBase.DrawPage(graphics, drawingArea, pageNumber)

    End Sub

    Protected Overrides Sub DrawCells(appArea As Rectangle, graphics As Graphics)

        Dim currentDate = Me.GetPageDate(Me.currentPage)
        Dim rowCount As Single = Math.Max(1, CInt(Math.Ceiling((TimeEndRange - TimeSpan.FromHours(TimeStartRange.Hours)).TotalHours)))
        Dim rowHeight As Single = CSng(appArea.Height) / rowCount

        For row As Integer = 0 To rowCount - 1
            Dim headerCellRect As New RectangleF(appArea.X, appArea.Y + row * rowHeight, Me.HoursColumnWidth, rowHeight)

            Dim element As New SchedulerPrintCellElement()
            element.DrawBorder = True
            element.Font = Me.DateHeadingFont
            element.[Date] = currentDate.AddHours(CInt(TimeStartRange.Add(TimeSpan.FromHours(row)).TotalHours))
            element.DateFormat = "hh:mm"
            element.TextAlignment = ContentAlignment.TopRight

            Me.DrawCell(element, graphics, headerCellRect)

            element.DrawText = False

            Dim numberOfSubRows As Integer = 1

            If Me.Scheduler.ActiveViewType = SchedulerViewType.Day OrElse Me.Scheduler.ActiveViewType = SchedulerViewType.MultiDay OrElse Me.Scheduler.ActiveViewType = SchedulerViewType.Week OrElse Me.Scheduler.ActiveViewType = SchedulerViewType.WorkWeek Then
                numberOfSubRows = 60 / CInt(DirectCast(Me.Scheduler.ActiveView, SchedulerDayViewBase).RangeFactor)
            End If

            For i As Integer = 0 To numberOfSubRows - 1
                Dim rect As New RectangleF(appArea.X + HoursColumnWidth, appArea.Y + row * rowHeight + rowHeight / numberOfSubRows * i, appArea.Width - HoursColumnWidth, rowHeight / numberOfSubRows)

                If i = numberOfSubRows - 1 Then
                    rect.Height += (appArea.Y + (row + 1) * rowHeight) - (rect.Y + rect.Height)
                End If

                Me.DrawCell(element, graphics, rect)
            Next
        Next
    End Sub

End Class

Public Class CustomSchedulerWeeklyCalendarPrintStyle
    Inherits SchedulerWeeklyCalendarPrintStyle

    Protected Overrides Sub DrawCells(appArea As RectangleF, graphics As Graphics, pageNumber As Integer)
        Dim days As Integer = Me.GetNumberOfDays(pageNumber)
        Dim currentDate As DateTime = Me.GetPageDate(pageNumber)
        If Me.TwoPagesPerWeek AndAlso pageNumber Mod 2 = 0 Then
            'page numbers are 1-based
            currentDate = currentDate.AddDays(Me.GetNumberOfDays(pageNumber - 1))
        End If

        Dim rowCount As Single = Math.Max(1, CInt(Math.Ceiling((TimeEndRange - TimeSpan.FromHours(TimeStartRange.Hours)).TotalHours)))
        Dim rowHeight As Single = CSng(appArea.Height) / rowCount
        Dim columnWidth As Single = (appArea.Width - Me.HoursColumnWidth) / CSng(days)

        For row As Integer = 0 To rowCount - 1
            Dim headerCellRect As New RectangleF(appArea.X, appArea.Y + row * rowHeight, Me.HoursColumnWidth, rowHeight)

            Dim element As New SchedulerPrintCellElement()
            element.DrawBorder = True
            element.Font = Me.DateHeadingFont
            element.[Date] = DateTime.Today.AddHours(CInt(TimeStartRange.Add(TimeSpan.FromHours(row)).TotalHours))
            element.[Date] = currentDate.AddHours(CInt(TimeStartRange.Add(TimeSpan.FromHours(row)).TotalHours))
            element.DateFormat = "hh:mm"
            element.TextAlignment = ContentAlignment.TopRight

            Me.DrawCell(element, graphics, headerCellRect)

            element.DrawText = False

            Dim numberOfSubRows As Integer = 60 / CInt(DirectCast(Me.Scheduler.ActiveView, SchedulerDayViewBase).RangeFactor)

            For i As Integer = 0 To numberOfSubRows - 1
                Dim rect As New RectangleF(appArea.X + HoursColumnWidth, appArea.Y + row * rowHeight + rowHeight / numberOfSubRows * i, appArea.Width - HoursColumnWidth, rowHeight / numberOfSubRows)

                If i = numberOfSubRows - 1 Then
                    rect.Height += (appArea.Y + (row + 1) * rowHeight) - (rect.Y + rect.Height)
                End If

                Me.DrawCell(element, graphics, rect)
            Next

            For j As Integer = 0 To days - 1
                element = New SchedulerPrintCellElement()
                element.DrawBorder = True
                element.DrawText = False
                element.[Date] = currentDate.AddDays(j).AddHours(CInt(TimeStartRange.Add(TimeSpan.FromHours(row)).TotalHours))
                Dim rect As New RectangleF(appArea.X + HoursColumnWidth + j * columnWidth, appArea.Y + row * rowHeight, columnWidth, rowHeight)

                Me.DrawCell(element, graphics, rect)
            Next
        Next
    End Sub

End Class
Completed
Last Updated: 11 May 2017 05:43 by ADMIN
To reproduce:

public Form1()
{
    InitializeComponent();

    this.radScheduler1.ActiveViewType = SchedulerViewType.Day;
    RulerPrimitive ruler = (this.radScheduler1.SchedulerElement.ViewElement as SchedulerDayViewElement).DataAreaElement.Ruler;
    ruler.RangeFactor= ScaleRange.TenMinutes;
}

Workaround:

this.radScheduler1.GetDayView().RangeFactor = ScaleRange.TenMinutes;
Completed
Last Updated: 14 Feb 2017 05:56 by ADMIN
To reproduce:

Private Sub RadForm1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim dayView As SchedulerDayView = Me.RadScheduler1.GetDayView()
    dayView.RangeFactor = ScaleRange.FiveMinutes
    Dim ruler As RulerPrimitive = TryCast(Me.RadScheduler1.SchedulerElement.ViewElement,  _
    SchedulerDayViewElement).DataAreaElement.Ruler
    ruler.FormatStrings = New RulerFormatStrings("hh", "mm", "hh", "mm")
End Sub

Add a RadScheduler to a form and use the code snippet above. Run the application and scroll to the current time to see the current time indicator. Leave the form opened so you can see it on the second monitor but focus on another application for 5 minutes. You will notice that the current time indicator won't be redrawn until you focus RadScheduler again, click on the view or perform scrolling. The expected behavior is that RadScheduler will move the current time indicator as time is ticking.

Workaround: use a timer to refresh RadScheduler at a certain interval:
        Dim timer As New Timer
        timer.Interval = 1000
        AddHandler timer.Tick, AddressOf TimerTick
        timer.Start()

Private Sub TimerTick(sender As Object, e As EventArgs)
    Me.RadScheduler1.SchedulerElement.RefreshViewElement()
End Sub
Completed
Last Updated: 03 Jan 2017 12:59 by ADMIN
Workaround: 

private void radScheduler1_CellFormatting(object sender, Telerik.WinControls.UI.SchedulerCellEventArgs e)
{
    if (e.CellElement is SchedulerHeaderCellElement && e.CellElement.Text == "Local")
    {
        e.CellElement.TextAlignment = ContentAlignment.BottomLeft;
    }
}
Unplanned
Last Updated: 27 Dec 2016 15:30 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: Scheduler/Reminder
Type: Bug Report
1
Please refer to the attached gif files. The separator ";" should be displayed when the appointment's information is displayed in a single line. Otherwise, the information should be displayed multi-line like in the OutlookSeparator.gif.

Note: you can test with different AppointmentTitleFormat.

Important: setting the Text in the AppointmentFormatting event must have higher priority than AppointmentTitleFormat!!!

Workaround:

Sub New() 
    InitializeComponent()

    Me.RadScheduler1.ElementProvider = New MyElementProvider(Me.RadScheduler1)
    Me.RadScheduler1.Appointments.Add(New Appointment(DateTime.Now, TimeSpan.FromMinutes(40), "Summary", "Description", "Location"))
End Sub

Public Class CustomAppointmentElement
Inherits AppointmentElement
    Public Sub New(scheduler As RadScheduler, view As SchedulerView, appointment As IEvent)
        MyBase.New(scheduler, view, appointment)

    End Sub

    Protected Overrides Function CreateAppointmentText() As String
        Return String.Format("{0:HH:mm} - {1:HH:mm} {3} <b>{2}</b>", Me.Appointment.Start, Me.Appointment.End, _
                             Me.Appointment.Location, Me.Appointment.Summary)
    End Function
End Class

Public Class MyElementProvider
Inherits SchedulerElementProvider
    Public Sub New(scheduler As RadScheduler)
        MyBase.New(scheduler)
    End Sub
    Protected Overrides Function CreateElement(Of T As SchedulerVisualElement)(view As SchedulerView, context As Object) As T
        If GetType(T) = GetType(AppointmentElement) Then
            Return TryCast(New CustomAppointmentElement(Me.Scheduler, view, DirectCast(context, IEvent)), T)
        End If
       
        Return MyBase.CreateElement(Of T)(view, context)
    End Function
End Class
Completed
Last Updated: 27 Dec 2016 14:38 by ADMIN
To reproduce: please refer to the attached sample project and gif file illustrating the visual problem.

Workaround:  subscribe to the RadSchedulerNavigator.ShowWeekendStateChanged event and refresh the scheduler view element:

AddHandler Me.RadSchedulerNavigator1.ShowWeekendStateChanged, AddressOf ShowWeekendStateChanged

Private Sub ShowWeekendStateChanged(sender As Object, args As StateChangedEventArgs)
    Me.RadScheduler1.SchedulerElement.RefreshViewElement()
End Sub
Completed
Last Updated: 19 Dec 2016 09:48 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: Scheduler/Reminder
Type: Bug Report
1
To reproduce:

public Form1()
{
    InitializeComponent();
    this.radScheduler1.ActiveViewType = SchedulerViewType.Week;
    SchedulerWeekView weekView = this.radScheduler1.GetWeekView();
    weekView.RangeFactor = ScaleRange.QuarterHour;
    
    Appointment appointment = new Appointment(DateTime.Today.AddHours(23).AddMinutes(45), new TimeSpan(0,15,0), "Meeting");
    this.radScheduler1.Appointments.Add(appointment);
}

private void radCheckBox1_ToggleStateChanged(object sender, Telerik.WinControls.UI.StateChangedEventArgs args)
{
    this.radScheduler1.EnableExactTimeRendering = this.radCheckBox1.Checked;
}

Please refer to the attached gif file.

Workaround:
In order to deal with the border case with appointment ending at 00:00h, use a new TimeSpan(0,14,59)
Completed
Last Updated: 19 Dec 2016 09:39 by ADMIN
To reproduce:

public Form1()
{
    InitializeComponent();
    this.radScheduler1.ActiveViewType = SchedulerViewType.Month;
    
    Appointment appointment = new Appointment(DateTime.Today.AddHours(23).AddMinutes(45), new TimeSpan(0,15,0), "Meeting");
    DailyRecurrenceRule rrule = new DailyRecurrenceRule(appointment.Start, 1, 10); 
    appointment.RecurrenceRule = rrule;
    this.radScheduler1.Appointments.Add(appointment);
    this.radScheduler1.EnableExactTimeRendering = true;
    
}

Click "This month" in RadSchedulerNavigator.

Workaround: In order to deal with the border case with appointment ending at 00:00h, use a new TimeSpan(0,14,59)
Completed
Last Updated: 07 Dec 2016 14:04 by ADMIN
Broken in version R3 2016 (2016.3.913)

How to reproduce:
SchedulerDayViewElement dayViewElement = (SchedulerDayViewElement)this.radScheduler1.ViewElement;
dayViewElement.SetColumnWidth(1, 2);

Workaround:
IDictionary cachedSum = (IDictionary)dayViewElement.GetType().GetField("cachedSum", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(dayViewElement);
cachedSum.Clear();
IDictionary cachedColumnHorizontalOffset = (IDictionary)dayViewElement.GetType().GetField("cachedColumnHorizontalOffset", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(dayViewElement);
cachedColumnHorizontalOffset.Clear();

SchedulerDayViewElement dayViewElement = (SchedulerDayViewElement)this.radScheduler1.ViewElement;
dayViewElement.SetColumnWidth(1, 2);
Completed
Last Updated: 07 Dec 2016 08:44 by ADMIN
When you create an appointment that starts on 30 November and ends at 00:00 on 1 December, the appointment time slot is extended to the next day. This happens when it is the end of the previous month and the beginning of the next one. 

Please refer to the attached sample gif file illustrating how to reproduce the problem with the Demo Application. 

Workaround: if the end time is at midnight, reduce the duration with one minute.

 private void radScheduler1_AppointmentAdded(object sender, Telerik.WinControls.UI.AppointmentAddedEventArgs e)
        {
            if (e.Appointment.End.Hour==0 && e.Appointment.End.Minute==0)
            {
                e.Appointment.End = e.Appointment.End.AddMinutes(-1);
            }
        }
Unplanned
Last Updated: 21 Nov 2016 12:38 by ADMIN
To reproduce: use the following code

Sub New()

    InitializeComponent()

    AddHandler Me.RadScheduler1.ActiveViewChanged, AddressOf ActiveViewChanged
    Me.RadScheduler1.ActiveViewType = Telerik.WinControls.UI.SchedulerViewType.Week
End Sub

Private Sub ActiveViewChanged(sender As Object, e As Telerik.WinControls.UI.SchedulerViewChangedEventArgs)
    Dim dayView As SchedulerDayViewBase = TryCast(Me.RadScheduler1.ActiveView, SchedulerDayViewBase)
    Dim dayViewElement As SchedulerDayViewElement = TryCast(Me.RadScheduler1.SchedulerElement.ViewElement, SchedulerDayViewElement)
    If dayViewElement IsNot Nothing Then
        Dim ruler As RulerPrimitive = dayViewElement.DataAreaElement.Ruler
        ruler.StartScale = 6
        ruler.EndScale = 22  
        dayView.WorkTime = New TimeInterval(TimeSpan.FromHours(13), TimeSpan.FromHours(16))
         
    End If
End Sub

When you run the project you will notice that the work time starts from 19:00 to 22:00. When you switch between DayView and WeekView, the ruler is not aligned with the scheduler cells as well. The attached gif file illustrates the incorrect behavior.

Workaround: use the RulerStartScale and RulerEndScale of the SchedulerDayViewBase

 Sub New()

     InitializeComponent()

     AddHandler Me.RadScheduler1.ActiveViewChanged, AddressOf ActiveViewChanged
     Me.RadScheduler1.ActiveViewType = Telerik.WinControls.UI.SchedulerViewType.Week
 End Sub

 Private Sub ActiveViewChanged(sender As Object, e As Telerik.WinControls.UI.SchedulerViewChangedEventArgs)
     Dim dayView As SchedulerDayViewBase = TryCast(Me.RadScheduler1.ActiveView, SchedulerDayViewBase)
     If dayView IsNot Nothing Then
         dayView.RulerStartScale = 6
         dayView.RulerEndScale = 22
         dayView.WorkTime = New TimeInterval(TimeSpan.FromHours(13), TimeSpan.FromHours(16))
     End If
 End Sub

Completed
Last Updated: 09 Nov 2016 13:52 by Rodrigo Cesar
1. Add RadSchedulerNavigator and a RadScheduler. Change the view type to Week View.
2. Associate the RadSchedulerNavigator to RadScheduler. Change the PC's time zone to (UTC-03:00) Brasilia Time zone
3. Change the PC's date to 21 Oct 2016 and run the application.
4. When you change the time zone in RadSchedulerNavigator to (UTC-03:00) Brasilia Time zone, you will notice that the ruler starts from 23.

Workaround: 

public Form1()
{
    InitializeComponent();

    radSchedulerNavigator1.AssociatedScheduler = radScheduler1;

    this.radScheduler1.ActiveViewChanged += radScheduler1_ActiveViewChanged;
    this.radScheduler1.CellElementMouseDown += radScheduler1_CellElementMouseDown; 
    this.radScheduler1.AppointmentEditDialogShowing += radScheduler1_AppointmentEditDialogShowing;
    radScheduler1.ActiveViewType = Telerik.WinControls.UI.SchedulerViewType.Week; 
}

DateTime? date = null;

private void radScheduler1_CellElementMouseDown(object sender, MouseEventArgs e)
{
    SchedulerCellElement cell = this.radScheduler1.ElementTree.GetElementAtPoint(e.Location) as SchedulerCellElement;
    if (cell != null)
    {
        date = cell.Date;
    }
}

CustomEditAppointmentDialog dialog = null;

private void radScheduler1_AppointmentEditDialogShowing(object sender, AppointmentEditDialogShowingEventArgs e)
{
    if (dialog == null)
    {
        dialog = new CustomEditAppointmentDialog();
    }
    e.AppointmentEditDialog = dialog;
    if (date != null && !e.Appointment.Start.Equals(date))
    {
        e.Appointment.Start = (DateTime)date;
    }
    date = null;
}

private void radScheduler1_ActiveViewChanged(object sender, Telerik.WinControls.UI.SchedulerViewChangedEventArgs e)
{
    SchedulerDayView dayView = e.NewView as SchedulerDayView;
    SchedulerWeekView weekView = e.NewView as SchedulerWeekView;
    if (dayView != null || weekView != null)
    {
        RulerPrimitive ruler = (this.radScheduler1.SchedulerElement.ViewElement as SchedulerDayViewElement).DataAreaElement.Ruler;
        ruler.GetType().GetField("defaultOffset", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).SetValue(ruler, 0.0f);
    }
}

public class CustomEditAppointmentDialog : EditAppointmentDialog
{
    protected override void LoadSettingsFromEvent(IEvent sourceEvent)
    {
        base.LoadSettingsFromEvent(sourceEvent);
        this.dateStart.Value = sourceEvent.Start;
        this.timeStart.Value  = sourceEvent.Start;
    }
}



Completed
Last Updated: 21 Oct 2016 05:42 by ADMIN
Completed
Last Updated: 20 Oct 2016 09:30 by Ralf
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 1
Category: Scheduler/Reminder
Type: Bug Report
3
Workaround:

Sub New()

    InitializeComponent()
     
    Me.RadScheduler1.ActiveViewType = UI.SchedulerViewType.Week
    AddHandler Me.RadSchedulerNavigator1.SchedulerNavigatorElement.ShowWeekendCheckBox.ToggleStateChanged, AddressOf ToggleStateChanged
End Sub

Private Sub ToggleStateChanged(sender As Object, args As UI.StateChangedEventArgs) 
    Me.RadScheduler1.SchedulerElement.RefreshViewElement()
End Sub
Unplanned
Last Updated: 04 Oct 2016 08:13 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: Scheduler/Reminder
Type: Bug Report
1
To reproduce:

public Form1()
{
    InitializeComponent();
    this.radScheduler1.ActiveViewType = SchedulerViewType.Week;
    SchedulerWeekView weekView = this.radScheduler1.GetWeekView();
    weekView.RangeFactor = ScaleRange.QuarterHour;
    
    Appointment appointment = new Appointment(DateTime.Today.AddHours(23).AddMinutes(45), new TimeSpan(0,15,0), "Meeting");
    DailyRecurrenceRule rrule = new DailyRecurrenceRule(appointment.Start, 1, 10); 
    appointment.RecurrenceRule = rrule;
    this.radScheduler1.Appointments.Add(appointment);
}

Workaround: In order to deal with the border case with appointment ending at 00:00h, use a new TimeSpan(0,14,59)
Unplanned
Last Updated: 04 Oct 2016 08:12 by ADMIN
To reproduce:

this.radScheduler1.ActiveViewType = SchedulerViewType.Month;
for (int i = 0; i < 10; i++)
{
    this.radScheduler1.Appointments.Add(new Appointment(DateTime.Now.AddHours(i),TimeSpan.FromMinutes(30),"A"+i));
}
 
Scroll to the bottom and try to select an appointment. You will notice that selection is not possible. The attached gif file illustrates the incorrect behavior. 

Workaround: use the overflow button by setting the SchedulerMonthView.EnableCellOverflowButton property to true:
SchedulerMonthView monthView = this.radScheduler1.GetMonthView();
 monthView.EnableCellOverflowButton = true;
Unplanned
Last Updated: 04 Oct 2016 08:11 by ADMIN
Please refer to the attached screenshot.

Workaround:

public Form1()
{
    InitializeComponent(); 

    this.radScheduler1.ElementProvider = new MyElementProvider(this.radScheduler1);
}

public class MyElementProvider : SchedulerElementProvider
{
    public MyElementProvider(RadScheduler scheduler) : base(scheduler)
    {
    }

    protected override T CreateElement<T>(SchedulerView view, object context)
    {
        if (typeof(T) == typeof(AppointmentElement))
        {
            return new CustomAppointmentElement(this.Scheduler, view, (IEvent)context)as T;
        }

        return base.CreateElement<T>(view, context);
    }
}

public class CustomAppointmentElement : AppointmentElement
{
    protected override Type ThemeEffectiveType     
    { 
        get    
        { 
            return typeof(AppointmentElement);     
        }
    }

    public CustomAppointmentElement(RadScheduler scheduler,
        SchedulerView view, IEvent appointment) : base(scheduler, view, appointment)
    {
    }

    protected override SizeF ArrangeOverride(SizeF finalSize)
    {
        SizeF s = base.ArrangeOverride(finalSize);
        return new SizeF(s.Width - 5,s.Height);
    }
}