Month view Items

12 posts, 0 answers
  1. Mike Baldini
    Mike Baldini avatar
    11 posts
    Member since:
    Feb 2010

    Posted 22 Jun 2010 Link to this post

    Why is it that when there are more appointments than can be displayed on a single day, the month view does not have scroll bars to view the additional items.... but the timeline view does?

    We absolutely love the way that the timeline view has scrollbars to see all the additional items. We are getting an absurd number of complaints from our customers about how the month view forces them into the day view just to see what appointments they have that day.

    We deal with accountants, chiropractors, lawyers, and other service representatives that can have 20+ appointments per day. And they want to be able to see all those appointments on the month view without having to switch to different view types.

    Is there any possible way we can get an option to display scroll bars on the month view when there are too many appointments to display on one day? This has really turned out to be a critical issue for us....
  2. Dobry Zranchev
    Admin
    Dobry Zranchev avatar
    348 posts

    Posted 28 Jun 2010 Link to this post

    Hi Mike Baldini,

    Thank you for contacting us.

    The current RadScheduler functionality is actually Outlook's default - when the appointments cannot be fitted in a single cell in month view, a small arrow appears notifying the user that there are more appointments, which in turn takes the user to the respective day so that all can be reviewed at once. The day view does have a scrollbar which can be used to review the appointments, if needed.

    We are trying to follow Outlook's usability standards, as it is the most used scheduling component in the world. In addition, it is our belief that the screen estate has to be optimized in such a way, that all days in a month are visible at all times, because this is the most optimal view when you are trying to review the tasks in a month.

    You are not the first person to request this functionality, however, so we will really appreciate your further feedback on this since we plan to extend this functionality to suit your needs better. Would like to have a scrollbar in the day cell itself (i.e. all days in a month are always shown on the screen, and just the ones that have more events have scrollbars) , or would you prefer a single scroolbar for the whole month view (but not all days visible)? You can also review how Google Calendar takes care of this feature and share your feedback on it as well.

    Thank you in advance.
     
    All the best,
    Dobry Zranchev
    the Telerik team
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
  3. UI for WinForms is Visual Studio 2017 Ready
  4. Mike Baldini
    Mike Baldini avatar
    11 posts
    Member since:
    Feb 2010

    Posted 28 Jun 2010 Link to this post


    this Example Calendar is what our original calendar looked like before we switched to your controls. I authored this calendar using VB and GDI+ early last year. The area on the right of each month cell was reserved for the scroll bars to see more appointments per day. 

    We do agree that the all days in the month need to be visible at the same time. With the ability to scroll each day rather than the whole month, you can keep the entire month in view while allowing for the individual days to show more than 2 or 3 appointments.

    One of the unique things that our clients use our calendar for is scheduling multiple people at the same time. The appointment descriptions show the start time followed by the staff (or Resource in your terms) initials, followed by the subject of the appointment. With this view (coupled with the ability to scroll individual days), scheduling managers are able to easily view where all their staff are at any given point.

    Our beta testers did not like when we switched the standard month view to the 'MonthViewGroupedByResource' view. Their main complaint was that in order to have enough real estate for the appointments, they were only able to show 1 resource per view. With showing only 1 resource per view, they were forced to scroll back and forth to each resource to compare the calendars. 

    For our beta testers, we combined the calendar back into one calendar for all staff  (or whatever staff they wanted via a 'select staff' dialog), and gave them a set of very powerful filters (filter by Contact, appointment type, location, color, etc). Even with all these enhancements and filters, our clients still said that they preferred our MS Access Calendars rather than the new ones.
  5. Dobry Zranchev
    Admin
    Dobry Zranchev avatar
    348 posts

    Posted 30 Jun 2010 Link to this post

    Hi Mike Baldini,

    Thank you for the feedback - we have updated your Telerik points for the feedback, and logged your vote for having scrollbars in the MonthView cells.

    We will be happy to hear what the community has to say about this feature, so that we can settle on a single implementation.
     

    Regards,
    Dobry Zranchev
    the Telerik team
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
  6. Ramius
    Ramius avatar
    127 posts
    Member since:
    Feb 2008

    Posted 30 Jun 2010 Link to this post

    Hi Dobry,

    i also want to vote for having scrollbars in the MonthView cells.

    Regards,

    Ramius
  7. Dobry Zranchev
    Admin
    Dobry Zranchev avatar
    348 posts

    Posted 05 Jul 2010 Link to this post

    Very well. We have created a new PITS entry for scrollbars in the month views. Please, vote for this here as well: 2611. You can also subscribe for notifications on this item.

    Do not hesitate to contact us for further questions.

    Sincerely yours,
    Dobry Zranchev
    the Telerik team
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
  8. pramuuu
    pramuuu avatar
    1 posts
    Member since:
    Apr 2011

    Posted 20 Apr 2011 Link to this post

    i also want to vote for having scrollbars in the MonthView cells...
  9. Ivan Todorov
    Admin
    Ivan Todorov avatar
    688 posts

    Posted 22 Apr 2011 Link to this post

    Hi pramuu,

    In order to vote for this feature, please login to our site and visit the PITS item page. There you can vote, track or comment it. If it gets more votes, we may consider implementing it in some of the future releases.

    I hope this helps.

    All the best,
    Ivan Todorov
    the Telerik team
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
  10. Andreas Haeusler
    Andreas Haeusler avatar
    25 posts
    Member since:
    Nov 2009

    Posted 27 Feb 2014 Link to this post

    Now that the scroll bars are available in the month view: How would one enable mousewheel - scolling?

    Kind regards,
    Andreas
  11. Dess
    Admin
    Dess avatar
    1609 posts

    Posted 03 Mar 2014 Link to this post

    Hello Andreas,

    Thank you for contacting Telerik Support.

    Currently, vertical scroll bar is available for the MonthCellElements. However, the mouse wheel will navigate you through the month days in the scheduler view. You can customize this behavior in order to implement scrolling of the MonthCellElements. Here is just a sample approach how to handle the MouseWheel event and stop the basic logic and implement your own. I would like to note that it is necessary to pay attention to finding the correct scroll bar:
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            new RadControlSpyForm().Show();
     
            for (int i = 0; i < 10; i++)
            {
                Appointment app = new Appointment(DateTime.Now, TimeSpan.FromMinutes(30), "Sumamry" + i);
     
                this.radScheduler1.Appointments.Add(app);
            }
     
            this.radScheduler1.MouseWheel += radScheduler1_MouseWheel;
        }
     
        private void radScheduler1_MouseWheel(object sender, MouseEventArgs e)
        {
        }
    }
     
    public class CustomScheduler : RadScheduler
    {
        public override string ThemeClassName 
        {
            get
            {
                return typeof(RadScheduler).FullName; 
            }
        }
     
        protected override void OnMouseWheel(MouseEventArgs e)
        {
            List<SchedulerCellElement> cells = SchedulerUIHelper.GetSelectedCells(this);
            MonthCellElement monthCell = null;
     
            foreach (SchedulerCellElement c in cells)
            {
                monthCell = c as MonthCellElement;
                if (monthCell != null)
                {
                    break;
                }
            }
     
            if (monthCell != null)
            {
                MonthViewAreaElement el = monthCell.Parent as MonthViewAreaElement;
     
                //Here you should find the correct scrollbar
             
                List<RadElement> scrollbars = el.GetDescendants(
                    delegate(RadElement element)
                    {
                        return element is RadScrollBarElement;
                    },
                    TreeTraversalMode.BreadthFirst);
     
                foreach (RadScrollBarElement scrollbar in scrollbars)
                {
                    if (monthCell.ControlBoundingRectangle.Y + monthCell.ControlBoundingRectangle.Height >= scrollbar.ControlBoundingRectangle.Y &&
                        monthCell.ControlBoundingRectangle.Y <= scrollbar.ControlBoundingRectangle.Y
                    )
                    {
                        if (scrollbar != null)
                        {
                            if (e.Delta < 0)
                            {
                                scrollbar.PerformSmallIncrement(1);
                            }
                            else
                            {
                                scrollbar.PerformSmallDecrement(1);
                            }
                        }
                        break;
                    }
                }
                return;
            }
            base.OnMouseWheel(e);
        }
    }

    Note that this is just a sample approach, which purpose is to demonstrates the approach and it may not cover all possible cases. Feel free to modify it on a way which suits your requirement best.

    I hope this information helps. Should you have further questions, I would be glad to help.

    Regards,
    Desislava
    Telerik
  12. Andreas Haeusler
    Andreas Haeusler avatar
    25 posts
    Member since:
    Nov 2009

    Posted 05 Mar 2014 in reply to Dess Link to this post

    Thank you Desislava,

    your code works once you click onto a monthviewarea and setting focus to that part of the Control. 

    As a quick hack i send a mouse click prior to your code - making the search for the correct scrollbar uneccessary.

    public class CustomScheduler : RadScheduler
        {
            private Stopwatch swPreventDoubleClick = new Stopwatch();
     
            public override string ThemeClassName
            {
                get { return typeof (RadScheduler).FullName; }
            }
     
     
            #region DoMouseClick Import and Method
            private const int MOUSEEVENTF_LEFTDOWN = 0x02;
            private const int MOUSEEVENTF_LEFTUP = 0x04;
            private const int MOUSEEVENTF_RIGHTDOWN = 0x08;
            private const int MOUSEEVENTF_RIGHTUP = 0x10;
         
     
            [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
            public static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint cButtons, uint dwExtraInfo);
     
            public void DoMouseClick()
            {
                var X = Cursor.Position.X;
                var Y = Cursor.Position.Y;
                mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, (uint) X, (uint) Y, 0, 0);
            }
            #endregion
            
            protected override void OnMouseWheel(MouseEventArgs e)
            {
                if (!swPreventDoubleClick.IsRunning || swPreventDoubleClick.ElapsedMilliseconds > 500)
                {
                    swPreventDoubleClick.Restart();
                    DoMouseClick();
                }
                List<SchedulerCellElement> cells = SchedulerUIHelper.GetSelectedCells(this);
     
                MonthCellElement monthCell = null;
     
                foreach (SchedulerCellElement c in cells)
                {
                    monthCell = c as MonthCellElement;
                    if (monthCell != null) { break; }
                }
     
                if (monthCell != null)
                {
                    var el = monthCell.Parent as MonthViewAreaElement;
     
                     if (el != null)
                    {
                        List<RadElement> scrollbars = el.GetDescendants(delegate(RadElement element) { return element is RadScrollBarElement; }, TreeTraversalMode.BreadthFirst);
     
                        foreach (RadScrollBarElement scrollbar in scrollbars)
                        {
                            if (monthCell.ControlBoundingRectangle.Y + monthCell.ControlBoundingRectangle.Height >= scrollbar.ControlBoundingRectangle.Y && monthCell.ControlBoundingRectangle.Y <= scrollbar.ControlBoundingRectangle.Y)
                            {
                                if (e.Delta < 0) { scrollbar.PerformSmallIncrement(1); }
                                else
                                { scrollbar.PerformSmallDecrement(1); }
     
                                break;
                            }
                        }
                    }
                    return;
                }
                base.OnMouseWheel(e);
            }
        }

    Thanks again,
    Andreas
  13. George
    Admin
    George avatar
    500 posts

    Posted 10 Mar 2014 Link to this post

    Hi Andreas,

    I am glad that you were able to find a solution which meets your requirements.

    Should you have further questions, do not hesitate to contact us.

    Regards,
    George
    Telerik

    DevCraft Q1'14 is here! Watch the online conference to see how this release solves your top-5 .NET challenges. Watch on demand now.

Back to Top
UI for WinForms is Visual Studio 2017 Ready