c#创建似outlook的功能的项目

本文介绍了如何在C#项目中利用DevExpress的SchedulerControls控件来实现类似Outlook的日程安排功能。在实现过程中,遇到了多语言化的挑战,通过创建资源类并结合控件的本地化方法,成功解决这一问题。同时,文章还展示了如何处理各种事件,如按钮点击、视图切换、约会编辑等,以及如何进行约会的保存、删除和重复周期设定。
摘要由CSDN通过智能技术生成

   最近一个星期在做一个跟outlook功能一样的项目,主要是做了日程安排,这个功能是嵌套在我们公司的货代软件里的.这个功能是利用第三方控件(devloper dexpress inc.net.2005)的Schedulercontrols实现的.通过几天的熟悉这个控件和用法,认为实现是没用难度.

       一开始,一切都在我的掌控之中.后面这个控件需要多语言化,就遇到麻烦了.试了很多种方法,效果都不是很好.在他们自己的网站上,介绍最多的就是建一个资源类,然后在窗体的构造函数里面调用,就可以了,具体如下:

using System;
using System.Collections.Generic;
using System.Text;
using DevExpress.XtraScheduler.Localization;

namespace Pyllot.Logistics.Office.Class
{
    class XtraSchedulerLocalizationCHS : SchedulerLocalizer
    {
        public override string GetLocalizedString(SchedulerStringId id)
        {
            switch (id)
            {
                case SchedulerStringId.Msg_IsNotValid:
                    return "'{0}' 相对于 '{1}' 不是一个有效的数值.";

                case SchedulerStringId.Msg_InvalidDayOfWeekForDailyRecurrence:
                    return "Invalid day of week for a daily recurrence. Only WeekDays.EveryDay, WeekDays.WeekendDays and WeekDays.WorkDays are valid in this context.";

                case SchedulerStringId.Msg_InternalError:
                    return "内部错误!";

                case SchedulerStringId.Msg_NoMappingForObject:
                    return "对象 /r/n {0} 未定义相关的 Mappings.";

                case SchedulerStringId.Msg_XtraSchedulerNotAssigned:
                    return "SchedulerStorage 控件未加入 ScheulerControl 当中";

                case SchedulerStringId.Msg_InvalidTimeOfDayInterval:
                    return "无效的时段";

                case SchedulerStringId.Msg_OverflowTimeOfDayInterval:
                    return "无效的数值. 数值必须少于或相等于一天.";

                case SchedulerStringId.Msg_LoadCollectionFromXml:
                    return "加载XML项目时, 日志表必须是在非绑定模式";

                case SchedulerStringId.AppointmentLabel_None:
                    return "无";

                case SchedulerStringId.AppointmentLabel_Important:
                    return "重要";

                case SchedulerStringId.AppointmentLabel_Business:
                    return "商务";

                case SchedulerStringId.AppointmentLabel_Personal:
                    return "个人";

                case SchedulerStringId.AppointmentLabel_Vacation:
                    return "休假";

                case SchedulerStringId.AppointmentLabel_MustAttend:
                    return "必须出席";

                case SchedulerStringId.AppointmentLabel_TravelRequired:
                    return "旅游需求";

                case SchedulerStringId.AppointmentLabel_NeedsPreparation:
                    return "需要准备";

                case SchedulerStringId.AppointmentLabel_Birthday:
                    return "生日";

                case SchedulerStringId.AppointmentLabel_Anniversary:
                    return "周年纪念";

                case SchedulerStringId.AppointmentLabel_PhoneCall:
                    return "通话";

                case SchedulerStringId.Msg_InvalidEndDate:
                    return "完成时间不能早于开始时间";

                case SchedulerStringId.Caption_Appointment:
                    return "{0} - 约会";

                case SchedulerStringId.Caption_Event:
                    return "{0} - 要事";

                case SchedulerStringId.Caption_UntitledAppointment:
                    return "未命名";

                case SchedulerStringId.Caption_WeekDaysEveryDay:
                    return "日";

                case SchedulerStringId.Caption_WeekDaysWeekendDays:
                    return "周末";

                case SchedulerStringId.Caption_WeekDaysWorkDays:
                    return "工作日";

                case SchedulerStringId.Caption_WeekOfMonthFirst:
                    return "第一周";

                case SchedulerStringId.Caption_WeekOfMonthSecond:
                    return "第二周";

                case SchedulerStringId.Caption_WeekOfMonthThird:
                    return "第三周";

                case SchedulerStringId.Caption_WeekOfMonthFourth:
                    return "第四周";

                case SchedulerStringId.Caption_WeekOfMonthLast:
                    return "最后一周";

                case SchedulerStringId.Msg_InvalidDayCount:
                    return "无法计算日子. 请输入正确数值.";

                case SchedulerStringId.Msg_InvalidDayCountValue:
                    return "无法计算日子. 请输入正确数值.";

                case SchedulerStringId.Msg_InvalidWeekCount:
                    return "无法计算周期. 请输入正确数值.";

                case SchedulerStringId.Msg_InvalidWeekCountValue:
                    return "无法计算周期. 请输入正确数值.";

                case SchedulerStringId.Msg_InvalidMonthCount:
                    return "无法计算月份. 请输入正确数值.";

                case SchedulerStringId.Msg_InvalidMonthCountValue:
                    return "无法计算月份. 请输入正确数值.";

                case SchedulerStringId.Msg_InvalidYearCount:
                    return "无法计算年份. 请输入正确数值.";

                case SchedulerStringId.Msg_InvalidYearCountValue:
                    return "无法计算年份. 请输入正确数值.";

                case SchedulerStringId.Msg_InvalidOccurrencesCount:
                    return "无法计算周期次数. 请输入正确数值.";

                case SchedulerStringId.Msg_InvalidOccurrencesCountValue:
                    return "无法计算周期次数. 请输入正确数值.";

                case SchedulerStringId.Msg_InvalidDayNumber:
                    return "日数输入无效. 日数必须是 1 至 {0} 之间的数值.";

                case SchedulerStringId.Msg_InvalidDayNumberValue:
                    return "日数输入无效. 日数必须是 1 至 {0} 之间的数值.";

                case SchedulerStringId.Msg_WarningDayNumber:
                    return "有些月份少于 {0} 天. 周期将排在这月份的最后一天.";

                case SchedulerStringId.Msg_InvalidDayOfWeek:
                    return "没有日子被选择. 请最少选择一个日子.";

                case SchedulerStringId.MenuCmd_OpenAppointment:
                    return "开(&O)";

                case SchedulerStringId.MenuCmd_PrintAppointment:
                    return "打印(&P)";

                case SchedulerStringId.MenuCmd_DeleteAppointment:
                    return "删除(&D)";

                case SchedulerStringId.MenuCmd_EditSeries:
                    return "编辑级联(&E)";

                case SchedulerStringId.MenuCmd_RestoreOccurrence:
                    return "回复默认状态(&R)";

                case SchedulerStringId.MenuCmd_NewAppointment:
                    return "新约会(&O)";

                case SchedulerStringId.MenuCmd_NewAllDayEvent:
                    return "新增全天要事(&E)";

                case SchedulerStringId.MenuCmd_NewRecurringAppointment:
                    return "新周期性约会(&A)";

                case SchedulerStringId.MenuCmd_NewRecurringEvent:
                    return "新周期性要事(&V)";

                case SchedulerStringId.MenuCmd_GotoThisDay:
                    return "今天(&D)";

                case SchedulerStringId.MenuCmd_GotoToday:
                    return "今天(&D)";

                case SchedulerStringId.MenuCmd_GotoDate:
                    return "到指定日期(&E)...";

                case SchedulerStringId.MenuCmd_OtherSettings:
                    return "其它设置(&I)...";

                case SchedulerStringId.MenuCmd_CustomizeCurrentView:
                    return "自定义当前视图(&C)...";

                case SchedulerStringId.MenuCmd_CustomizeTimeRuler:
                    return "变更时区...";

                case SchedulerStringId.MenuCmd_5Minutes:
                    return "5分钟";

                case SchedulerStringId.MenuCmd_6Minutes:
                    return "6分钟";

                case SchedulerStringId.MenuCmd_10Minutes:
                    return "10分钟";

                case SchedulerStringId.MenuCmd_15Minutes:
                    return "15分钟";

                case SchedulerStringId.MenuCmd_20Minutes:
                    return "20分钟";

                case SchedulerStringId.MenuCmd_30Minutes:
                    return "30分钟";

                case SchedulerStringId.MenuCmd_60Minutes:
                    return "60分钟";

                case SchedulerStringId.MenuCmd_SwitchViewMenu:
                    return "改变视图";

                case SchedulerStringId.MenuCmd_SwitchToDayView:
                    return "天(&D)";

                case SchedulerStringId.MenuCmd_SwitchToWorkWeekView:
                    return "工作周(&R)";

                case SchedulerStringId.MenuCmd_SwitchToWeekView:
                    return "星期(&W)";

                case SchedulerStringId.MenuCmd_SwitchToMonthView:
                    return "月(&M)";

                case SchedulerStringId.MenuCmd_ShowTimeAs:
                    return "显示时间为(&S)";

                case SchedulerStringId.MenuCmd_Free:
                    return "空闲(&F)";

                case SchedulerStringId.MenuCmd_Busy:
                    return "忙碌(&B)";

                case SchedulerStringId.MenuCmd_Tentative:
                    return "暂定(&T)";

                case SchedulerStringId.MenuCmd_OutOfOffice:
                    return "不在办公室(&O)";

                case SchedulerStringId.MenuCmd_LabelAs:
                    return "标注(&L)";

                case SchedulerStringId.MenuCmd_AppointmentLabelNone:
                    return "无(&N)";

                case SchedulerStringId.MenuCmd_AppointmentLabelImportant:
                    return "重要(&I)";

                case SchedulerStringId.MenuCmd_AppointmentLabelBusiness:
                    return "商务(&B)";

                case SchedulerStringId.MenuCmd_AppointmentLabelPersonal:
                    return "个人(P)";

                case SchedulerStringId.MenuCmd_AppointmentLabelVacation:
                    return "休假(&V)";

                case SchedulerStringId.MenuCmd_AppointmentLabelMustAttend:
                    return "必须出席(&A)";

                case SchedulerStringId.MenuCmd_AppointmentLabelTravelRequired:
                    return "旅游需求(&T)";

                case SchedulerStringId.MenuCmd_AppointmentLabelNeedsPreparation:
                    return "需要准备(&N)";

                case SchedulerStringId.MenuCmd_AppointmentLabelBirthday:
                    return "生日(&B)";

                case SchedulerStringId.MenuCmd_AppointmentLabelAnniversary:
                    return "周年纪念(&A)";

                case SchedulerStringId.MenuCmd_AppointmentLabelPhoneCall:
                    return "通话(&P)";

                case SchedulerStringId.MenuCmd_AppointmentMove:
                    return "移除(&V)";

                case SchedulerStringId.MenuCmd_AppointmentCopy:
                    return "复制(&C)";

                case SchedulerStringId.MenuCmd_AppointmentCancel:
                    return "取消(&A)";

                case SchedulerStringId.Caption_5Minutes:
                    return "5分钟";

                case SchedulerStringId.Caption_6Minutes:
                    return "6分钟";

                case SchedulerStringId.Caption_10Minutes:
                    return "10分钟";

                case SchedulerStringId.Caption_15Minutes:
                    return "15分钟";

                case SchedulerStringId.Caption_20Minutes:
                    return "20分钟";

                case SchedulerStringId.Caption_30Minutes:
                    return "30分钟";

                case SchedulerStringId.Caption_60Minutes:
                    return "60分钟";

                case SchedulerStringId.Caption_Free:
                    return "空闲";

                case SchedulerStringId.Caption_Busy:
                    return "忙碌";

                case SchedulerStringId.Caption_Tentative:
                    return "暂定";

                case SchedulerStringId.Caption_OutOfOffice:
                    return "不在办公室";

                case SchedulerStringId.ViewDisplayName_Day:
                    return "日行事历";

                case SchedulerStringId.ViewDisplayName_WorkDays:
                    return "工作周行事历";

                case SchedulerStringId.ViewDisplayName_Week:
                    return "周行事历";

                case SchedulerStringId.ViewDisplayName_Month:
                    return "月行事历";

                case SchedulerStringId.Abbr_MinutesShort1:
                    return "分";

                case SchedulerStringId.Abbr_MinutesShort2:
                    return "分";

                case SchedulerStringId.Abbr_Minute:
                    return "分钟";

                case SchedulerStringId.Abbr_Minutes:
                    return "分钟";

                case SchedulerStringId.Abbr_HoursShort:
                    return "小时";

                case SchedulerStringId.Abbr_Hour:
                    return "小时";

                case SchedulerStringId.Abbr_Hours:
                    return "小时";

                case SchedulerStringId.Abbr_DaysShort:
                    return "日";

                case SchedulerStringId.Abbr_Day:
                    return "日";

                case SchedulerStringId.Abbr_Days:
                    return "日";

                case SchedulerStringId.Abbr_WeeksShort:
                    return "周";

                case SchedulerStringId.Abbr_Week:
                    return "周";

                case SchedulerStringId.Abbr_Weeks:
                    return "周";

                case SchedulerStringId.Abbr_Month:
                    return "月份";

                case SchedulerStringId.Abbr_Months:
                    return "月份";

                case SchedulerStringId.Abbr_Year:
                    return "年";

                case SchedulerStringId.Abbr_Years:
                    return "年";

                case SchedulerStringId.Caption_Reminder:
                    return "{0} 提示";

                case SchedulerStringId.Caption_Reminders:
                    return "{0} 提示";

                case SchedulerStringId.Caption_StartTime:
                    return "开始时间: {0}";

                case SchedulerStringId.Caption_NAppointmentsAreSelected:
                    return "{0} 约会被选择";

                case SchedulerStringId.Format_TimeBeforeStart:
                    return "未开始前 {0}";

                case SchedulerStringId.Msg_Conflict:
                    return "一项被修改的约会跟其它一项或多项的约会出现冲突.";

                case SchedulerStringId.Msg_InvalidAppointmentDuration:
                    return "无效的约会时段. 请重新输入.";

                case SchedulerStringId.Msg_InvalidReminderTimeBeforeStart:
                    return "无效的提醒时间. 请重新输入.";

                case SchedulerStringId.TextDuration_FromTo:
                    return "由 {0} 至 {1}";

                case SchedulerStringId.TextDuration_FromForDays:
                    return "由 {0} 至 {1} ";

                case SchedulerStringId.TextDuration_FromForDaysHours:
                    return "由 {0} 至 {1} {2}";

                case SchedulerStringId.TextDuration_FromForDaysMinutes:
                    return "由 {0} 至 {1} {3}";

                case SchedulerStringId.TextDuration_FromForDaysHoursMinutes:
                    return "由 {0} 至 {1} {2} {3}";

                case SchedulerStringId.TextDuration_ForPattern:
                    return "{0} {1}";

                case SchedulerStringId.TextDailyPatternString_EveryDay:
                    return "每 {0} {1}";

                case SchedulerStringId.TextDailyPatternString_EveryDays:
                    return "每 {0} {1} {2}";

                case SchedulerStringId.TextDailyPatternString_EveryWeekDay:
                    return "每个工作天 {0}";

                case SchedulerStringId.TextDailyPatternString_EveryWeekend:
                    return "每个周末 {0}";

                case SchedulerStringId.TextWeekly_1Day:
                    return "{0}";

                case SchedulerStringId.TextWeekly_2Day:
                    return "{0} 及 {1}";

                case SchedulerStringId.TextWeekly_3Day:
                    return "{0}, {1}, 及 {2}";

                case SchedulerStringId.TextWeekly_4Day:
                    return "{0}, {1}, {2}, 及 {3}";

                case SchedulerStringId.TextWeekly_5Day:
                    return "{0}, {1}, {2}, {3}, 及 {4}";

                case SchedulerStringId.TextWeekly_6Day:
                    return "{0}, {1}, {2}, {3}, {4}, 及 {5}";

                case SchedulerStringId.TextWeekly_7Day:
                    return "{0}, {1}, {2}, {3}, {4}, {5}, 及 {6}";

                case SchedulerStringId.TextWeeklyPatternString_EveryWeek:
                    return "every {2} {3}";

                case SchedulerStringId.TextWeeklyPatternString_EveryWeeks:
                    return "every {0} {1} on {2} {3}";

                case SchedulerStringId.TextMonthlyPatternString_SubPattern:
                    return "of every {0} {1} {2}";

                case SchedulerStringId.TextMonthlyPatterString1:
                    return "day {0} {1}";

                case SchedulerStringId.TextMonthlyPatterString2:
                    return "the {0} {1} {2}";

                case SchedulerStringId.TextYearlyPattern_YearString1:
                    return "every {0} {1} {4}";

                case SchedulerStringId.TextYearlyPattern_YearString2:
                    return "the {0} {1} of {2} {5}";

                case SchedulerStringId.TextYearlyPattern_YearsString1:
                    return "{0} {1} of every {2} {3} {4}";

                case SchedulerStringId.TextYearlyPattern_YearsString2:
                    return "the {0} {1} of {2} every {3} {4} {5}";

                case SchedulerStringId.Caption_AllDay:
                    return "全天";

                case SchedulerStringId.Caption_PleaseSeeAbove:
                    return "请看上文";

                case SchedulerStringId.Caption_RecurrenceSubject:
                    return "主旨:";

                case SchedulerStringId.Caption_RecurrenceLocation:
                    return "地点:";

                case SchedulerStringId.Caption_RecurrenceStartTime:
                    return "开始:";

                case SchedulerStringId.Caption_RecurrenceEndTime:
                    return "结束:";

                case SchedulerStringId.Caption_RecurrenceShowTimeAs:
                    return "显示时间为:";

                case SchedulerStringId.Caption_Recurrence:
                    return "周期性:";

                case SchedulerStringId.Caption_RecurrencePattern:
                    return "循环模式";

                case SchedulerStringId.Caption_NoneRecurrence:
                    return "(无)";

                case SchedulerStringId.MemoPrintDateFormat:
                    return "{0} {1} {2}";

                case SchedulerStringId.Caption_EmptyResource:
                    return "任何";

                case SchedulerStringId.Caption_DailyPrintStyle:
                    return "日样式";

                case SchedulerStringId.Caption_WeeklyPrintStyle:
                    return "周样式";

                case SchedulerStringId.Caption_MonthlyPrintStyle:
                    return "月样式";

                case SchedulerStringId.Caption_TrifoldPrintStyle:
  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值