悟天的小别墅

人心忧虑,屈而不升。 一句良言,使心欢喜。

导航

XtraScheduler的一些使用心得

Posted on 2012-10-11 11:57  marcozh  阅读(1560)  评论(1编辑  收藏  举报

最近用到XtraScheduler,研究了几天,摸到了一些皮毛,下文用Q&A的方式记录一下。

1、如何自定义右键菜单

private void scPlan_PreparePopupMenu(object sender, PreparePopupMenuEventArgs e)
        {
            if (e.Menu.Id == DevExpress.XtraScheduler.SchedulerMenuItemId.DefaultMenu)
            {
                //隐藏
                SchedulerPopupMenu itemChangeViewTo = e.Menu.GetPopupMenuById(SchedulerMenuItemId.SwitchViewMenu);
                itemChangeViewTo.Visible = false;

                //删除
                e.Menu.RemoveMenuItem(SchedulerMenuItemId.NewAllDayEvent);
              
                //设置为不可用
                e.Menu.DisableMenuItem(SchedulerMenuItemId.NewRecurringAppointment);

                //改名
                SchedulerMenuItem item = e.Menu.GetMenuItemById(SchedulerMenuItemId.NewAppointment);
                if (item != null) item.Caption = "新建一个计划";

                ////创建一个新项,用内置的命令
                ISchedulerCommandFactoryService service =
                (ISchedulerCommandFactoryService)scPlan.GetService(typeof(ISchedulerCommandFactoryService));
                SchedulerCommand cmd = service.CreateCommand(SchedulerCommandId.GotoDay);
                SchedulerMenuItemCommandWinAdapter menuItemCommandAdapter =
                    new SchedulerMenuItemCommandWinAdapter(cmd);
                
                DXMenuItem menuItem = (DXMenuItem)menuItemCommandAdapter.CreateMenuItem();
                menuItem.BeginGroup = true;
                e.Menu.Items.Add(menuItem);

                DXMenuItem menuItem2 = new SchedulerMenuItem("添加一个转发", MyClickHandler);
                menuItem2.BeginGroup = true;

                //创建一个新的自定义事件
           e.Menu.Items.Add(menuItem2);

            }

        }


2、如何存储循环和提醒规则
3、如何Loading和保存数据
4、假如我的日程表中有很多数据,不可能一次性加载,如何实现动态加载?