The occurrences and the navigation arrows are not displayed correctly when using YearlyRecurrence with the "First Monday of January" rule. The issue also appears with similar rule types.
Steps to reproduce: 1. Add a RadSchduler to a form (No need to add appointments) 2. Set the active view type to Timeline 3. Set the Appointmentheight property of the timeline view element to 50 4. Run the project, right-click on the scheduler and select Next View You will see a NullReferenceException exception.
The appointments area of RadScheduler in DayView or WeekView should be automatically scrolled when resizing appointments.
To reproduce: Subscribe for the ContextMenuShowing event of RadScheduler and use the following code: private void radScheduler1_ContextMenuShowing(object sender, SchedulerContextMenuShowingEventArgs e) { e.ContextMenu.Items.Clear(); e.ContextMenu.Items.Add(new RadMenuItem("Item")); } Right-Click on two appointments and you will notice the exception Workaround: Add three invisible items: private void radScheduler1_ContextMenuShowing(object sender, SchedulerContextMenuShowingEventArgs e) { e.ContextMenu.Items.Clear(); e.ContextMenu.Items.Add(new RadMenuItem("Item")); for (int i = 0; i < 3; i++) { e.ContextMenu.Items.Add(new RadMenuItem() { Visibility = ElementVisibility.Collapsed }); } }
Add the ability to have a scrollbar in the cell where AllDay appointments are stored. The scrollbar should show after a certain amount of AllDay appointments have been added.
Add an option to allow the end user to select multiple appointments using CTRL + mouse click. The user should also be able to delete all the selected appointments at once.
Add an option for SchedulerMonthlyPrintStyle to show the text of the appointments, not only the dates.
Add StatusId property to AppointmentElement class for formatting purposes.
Printing support
Implement RadScheduler Timeline View. Add design time support, theming capabilities, the works.
Steps to reproduce: 1. Subscribe for the scheduler Appointments.CollectionChanged event. 2. Add a recurring appointment and delete a single occurrence. You will see that the event is fired and the action is Add.
Expose some of the printing methods to allow derived classes to override them for greater customization support.
Implement a Gantt view in Scheduler We choose another approach for this and we implemented a whole new RadGanttView control instead. Of course it can be paired up with RadScheduler. Here is the product page: http://www.telerik.com/products/winforms/ganttview-beta.aspx
Steps to reproduce: 1. Add a scheduler to a form. 2. Add some data and group it by resource. 3. Add a button and on click call the NavigateToNextResource method: this.radSchedulerDemo.SchedulerElement.NavigateToNextResource(); You will see that nothing happens. WORKAROUND: RadScrollBarElement scrollBarElement = this.radScheduler1.SchedulerElement.ViewElement.Children[3] as RadScrollBarElement; this.radScheduler1.SchedulerElement.NavigateToLastResource(); int numberOfBackSteps = scrollBarElement.Maximum - scrollBarElement.Value - (this.radSchedulerDemo.SchedulerElement.View.ResourcesPerView - 1); for (int i = 0; i <= numberOfBackSteps; i++) { this.radScheduler1.SchedulerElement.NavigateToPreviousResource(); }
Steps to reproduce. 1. Add a RadScheduler to a form, add some appointments. 2. Add grouping with at least two groups. 3. Drag an appointment from the second group (top to bottom) and drop it above the scheduler. The drag hint should be for invalid operation (striked red circle) You will see that the appointment will disappear from the scheduler. WORKAROUND AddHandler Me.RadScheduler1.DragDropBehavior.Stopped, AddressOf DragDropBehavior_Stopped Private Sub DragDropBehavior_Stopped(sender As Object, e As EventArgs) Dim element As TimelineGroupingByResourcesElement = Me.RadScheduler1.SchedulerElement.Children(0) For Each timelineViewElement In element.Children If timelineViewElement.GetType() = GetType(SchedulerTimelineViewElement) Then For Each applicationElement As RadElement In CType(timelineViewElement, SchedulerTimelineViewElement).Presenter.Children If applicationElement.GetType() = GetType(AppointmentElement) Then applicationElement.Visibility = ElementVisibility.Visible End If Next End If Next End Sub
The issue is when you drag up or drag down the top or bottom of the appointment i.e extend or decrease the slot. The error I get with that same codebase is Object reference not set to an instance of an object. inner exception null Source: Telerik.WinControls.Scheduler StackTrace: at Telerik.WinControls.UI.DayViewAppointmentsTable.appointment_MouseUp(Object sender, MouseEventArgs e) at Telerik.WinControls.UI.DayViewAppointmentsTable.AppointmentMouseUp(Object sender, MouseEventArgs e) at Telerik.WinControls.UI.RadSchedulerElement.scheduler_AppointmentElementMouseUp(Object sender, MouseEventArgs e) at Telerik.WinControls.UI.RadScheduler.OnAppointmentElementMouseUp(Object sender, MouseEventArgs args)...
1. Create a new project with RadScheduler. 2. Handle the AppointmentFormatting event and change appointment border color. 3. Run the project and add an appointment.
drop a scheduler on a form and call it schMain. replace your form1 code with the code below. it will reproduce the issue. in the load event of the form, there's a method called BindForm. if you comment out this line, it works. the resources are all in color like they should be. if you put the line back in, it breaks and they all go gray. i attached screen shots of what i see too. Comment: You should map the Color property of ResourceMappingInfo class to the respective property in your business object in order to solve this issue.
1. Create a new project with RadScheduler. 2. Add some resources. 3. Set GroupType property to Resource. 4. Handle AppointmentDropping event and print its NewResourceId property. 4. Run the project and add an appointment. 5. Try to move this appointment to another resource.
Steps to reproduce: 1. Add a RadReminder component to a form 2. Set the StartNotificaton property to a TimeSpan of one hour and several minutes 3. Add a remind object to the reminder in a way that the time between now and the beginning of the appointment would be in the time interval between now and the now plus the reminder start notofication. (e.g. this.radReminder1.StartNotification = new TimeSpan(1, 30, 0); DateTime now = DateTime.Now; this.radReminder1.AddRemindObject(new Appointment(now.AddMinutes(70), now.AddMinutes(90), "text")); Start the project and show the reminder. You will see that the "Due in" time would not be correct.