Hi,
We use WinSchedule Infragistics UltraControls v16.2 for WinForms.
When adding multiple appointments to the UltraCalendarInfo, they appear nice in the different views (UltraDayView, UltraWeekView, UltraMonthView and UltraTimeLineView).
In UltraWeekView and UltraMonthView, if more appointments are made in 1 day than can be visualised in the available space, we see a small arrow + 3 dots, to indicate that more appointments are made on that day, but clicking on the arrow/dots don't scroll / does not bring more appointments into view.
This is different in the UltraTimeLineView, if appointments are not "in view" a similar scroll button is shown, and it works automatically without any programming to bring them into view.
Am I missing something in the UltraWeekView and UltraMonthView ? Do I need to set a property in order to get this working ? Or do I need to handle an event ?
Any advice would be appreciated, thanks in advance !
Koen
Hello Koren,
The UltraMonthView exposes a MoreActivityIndicatorClicked event which you can handle to present a DayView. The event argument exposes the Day object to be used to set the calendar info's ActiveDay property. From there you can suspend the month view and display a day view control as seen by MS Outlook.
eg.
private void ultraMonthViewSingle1_MoreActivityIndicatorClicked(object sender, Infragistics.Win.UltraWinSchedule.MoreActivityIndicatorClickedEventArgs e) { // Get a reference to the day that contains the indicator that was clicked Infragistics.Win.UltraWinSchedule.Day day = e.Day; DateTime date = day.Date; // Activate the day that contains the indicator that was clicked this.ultraCalendarInfo1.ActiveDay = day; // Select the day that contains the indicator that was clicked this.ultraCalendarInfo1.SelectedDateRanges.Clear(); this.ultraCalendarInfo1.SelectedDateRanges.Add( date ); // Hide the UltraMonthViewSingleBase-derived control since we are // going to show the UltraDayView control. UltraMonthViewSingleBase senderControl = sender as UltraMonthViewSingleBase; senderControl.Visible = false; // Show the UltraDayView control; since UltraDayView displays // the contents of the SelectedDateRanges collection, the day // that contains the indicator that was clicked will now be // visible in the UltraDayView control. this.ultraDayView1.Visible = true; }
Let me know if you have any questions.