在一些应用场景中,我们可能需要记录某一天,某个时段的日程安排,那么这个时候就需要引入了 DevExpress 的日程控件XtraScheduler 了,这个控件功能非常强大,提供了很好的界面展现方式,以及很多的事件、属性给我们定制修改,能很好满足我们的日程计划安排的需求,本文全面分析并使用这 个控件,希望把其中的经验与大家分享。
1、日程控件的表现效果
整个日程控件,可以分为日视图、周视图、月视图等等,当然还有一些不常用的时间线、甘特图等,本例我们来关注控件的使用以及这几个视图的处理。先来看看他们的界面效果,如下所示。
日视图:
在视图里面,默认可以打开响应的日程事件进行编辑的。
周视图:
月视图:
2、日程控件XtraScheduler的使用
我们在上面展示了这个控件的几个视图的界面,一般情况下的控件使用还是很方便的,也就是直接拖拉SchedulerControl到Winform界面即可,但是我们为了符合我们的使用需求,还是需要设置不少属性或者事件的处理的。
1)几种视图的切换
由于控件,默认也是提供右键菜单,对几种控件视图进行切换的,如下菜单所示。
但是我们也可以通过代码进行切换处理,具体代码很简单,该控件已经进行了很好的封装,直接使用即可。
private void btnDayView_Click(object sender, EventArgs e)
{
//需要为日视图类型
this.schedulerControl1.ActiveViewType = SchedulerViewType.Day;
}
private void btnWeekView_Click(object sender, EventArgs e)
{
//需要为周视图类型
this.schedulerControl1.ActiveViewType = SchedulerViewType.FullWeek;
}
private void btnMonthView_Click(object sender, EventArgs e)
{
//需要为周视图类型
this.schedulerControl1.ActiveViewType = SchedulerViewType.Month;
}
2)设置禁用编辑、新增等功能处理
该日程控件,可以通过控件属性,对日程记录的新增、编辑、删除等菜单功能进行屏蔽或者开放(默认是开放的)。
通过控件属性的方式,操作如下所示。
当然我们也可以通过代码对这些属性进行设置,如下代码所示。
SchedulerControl control = this.schedulerControl1;
//禁用日程增加、删除、修改、拖拉等操作
control.OptionsCustomization.AllowAppointmentCreate = DevExpress.XtraScheduler.UsedAppointmentType.None;
control.OptionsCustomization.AllowAppointmentDelete = DevExpress.XtraScheduler.UsedAppointmentType.None;
control.OptionsCustomization.AllowAppointmentEdit = DevExpress.XtraScheduler.UsedAppointmentType.None;
control.OptionsCustomization.AllowAppointmentDrag = DevExpress.XtraScheduler.UsedAppointmentType.None;
control.OptionsCustomization.AllowAppointmentMultiSelect = false;
control.OptionsRangeControl.AllowChangeActiveView = false;
control.Views.MonthView.CompressWeekend = false;
control.OptionsBehavior.ShowRemindersForm = false;
3)日程控件的头部日期显示处理
默认的日程控件,其日视图、周视图的头部默认显示的是日期,如下所示。
如果需要把它修改为我们想要的头部内容(如加上星期几),那么就需要对这个头部显示进行自定