Devexpress中的scheduler控件菜单的汉化处理

往事111 2019-03-26 10:57:19
这两天研究了一下Devexpress中的scheduler控件,在PopupMenuShowing事件中:
if (e.Menu.Id == SchedulerMenuItemId.DefaultMenu)
{
SchedulerMenuItem itemGotoThisDay = e.Menu.GetMenuItemById(SchedulerMenuItemId.GotoThisDay);
if (itemGotoThisDay != null) itemGotoThisDay.Caption = "转到选中日期";

SchedulerMenuItem itemNewAppointment = e.Menu.GetMenuItemById(SchedulerMenuItemId.NewAppointment);
if (itemNewAppointment != null) itemNewAppointment.Caption = "新建日程安排";

SchedulerMenuItem itemNewAllDayEvent = e.Menu.GetMenuItemById(SchedulerMenuItemId.NewAllDayEvent);
if (itemNewAllDayEvent != null) itemNewAllDayEvent.Caption = "新建所有当天事件";

SchedulerMenuItem itemNewRecurringAppointment = e.Menu.GetMenuItemById(SchedulerMenuItemId.NewRecurringAppointment);
if (itemNewRecurringAppointment != null) itemNewRecurringAppointment.Caption = "新建定期日程安排";

SchedulerMenuItem itemNewRecurringEvent = e.Menu.GetMenuItemById(SchedulerMenuItemId.NewRecurringEvent);
if (itemNewRecurringEvent != null) itemNewRecurringEvent.Caption = "新建定期事件";

SchedulerMenuItem itemGotoToday = e.Menu.GetMenuItemById(SchedulerMenuItemId.GotoToday);
if (itemGotoToday != null) itemGotoToday.Caption = "转到今天";

SchedulerMenuItem itemGotoDate = e.Menu.GetMenuItemById(SchedulerMenuItemId.GotoDate);
if (itemGotoDate != null) itemGotoDate.Caption = "转到指定日期";

SchedulerPopupMenu itemChangeViewTo = e.Menu.GetPopupMenuById(SchedulerMenuItemId.SwitchViewMenu);
if (itemChangeViewTo != null) itemChangeViewTo.Caption = "视图更改为";
//子菜单
SchedulerMenuCheckItem itemSwitchToDayView = e.Menu.GetMenuCheckItemById(SchedulerMenuItemId.SwitchToDayView);
if (itemSwitchToDayView != null) itemSwitchToDayView.Caption = "日视图";

SchedulerMenuCheckItem itemSwitchToWorkWeekView = e.Menu.GetMenuCheckItemById(SchedulerMenuItemId.SwitchToWorkWeekView);
if (itemSwitchToWorkWeekView != null) itemSwitchToWorkWeekView.Caption = "工作周视图";

SchedulerMenuCheckItem itemSwitchToWeekView = e.Menu.GetMenuCheckItemById(SchedulerMenuItemId.SwitchToWeekView);
if (itemSwitchToWeekView != null) itemSwitchToWeekView.Caption = "周视图";

SchedulerMenuCheckItem itemSwitchToMonthView = e.Menu.GetMenuCheckItemById(SchedulerMenuItemId.SwitchToMonthView);
if (itemSwitchToMonthView != null) itemSwitchToMonthView.Caption = "月视图";

SchedulerMenuCheckItem itemSwitchToTimelineView = e.Menu.GetMenuCheckItemById(SchedulerMenuItemId.SwitchToTimelineView);
if (itemSwitchToTimelineView != null) itemSwitchToTimelineView.Caption = "按时间线顺序";
//禁用甘特图
SchedulerMenuCheckItem itemSwitchToGanttView = e.Menu.GetMenuCheckItemById(SchedulerMenuItemId.SwitchToGanttView);
if (itemSwitchToGanttView != null) itemSwitchToGanttView.Visible = false;


}
if (e.Menu.Id == SchedulerMenuItemId.AppointmentMenu)
{
//e.Menu.RemoveMenuItem(SchedulerMenuItemId.LabelSubMenu);
//e.Menu.RemoveMenuItem(SchedulerMenuItemId.StatusSubMenu);

SchedulerMenuItem itemLabelSubMenu = e.Menu.GetMenuItemById(SchedulerMenuItemId.LabelSubMenu);
if (itemLabelSubMenu != null) itemLabelSubMenu.Caption = "标记为";

SchedulerMenuItem itemStatusSubMenu = e.Menu.GetMenuItemById(SchedulerMenuItemId.StatusSubMenu);
if (itemStatusSubMenu != null) itemStatusSubMenu.Caption = "显示为";

SchedulerMenuItem itemDeleteAppointment = e.Menu.GetMenuItemById(SchedulerMenuItemId.DeleteAppointment);
if (itemDeleteAppointment != null) itemDeleteAppointment.Caption = "删除";

SchedulerMenuItem itemOpenAppointment = e.Menu.GetMenuItemById(SchedulerMenuItemId.OpenAppointment);
if (itemOpenAppointment != null) itemOpenAppointment.Caption = "打开";

SchedulerMenuItem itemEditSeries = e.Menu.GetMenuItemById(SchedulerMenuItemId.EditSeries);
if (itemEditSeries != null) itemEditSeries.Caption = "编辑数据系列";
}


但LabelSubMenu和StatusSubMenu始终不能变成中文,奇怪!
...全文
322 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
往事111 2019-03-30
  • 打赏
  • 举报
回复
引用 4 楼 exception92 的回复:
没有这样汉化过,我都是使用汉化包全部汉化。
好,我也来试一下
stherix 2019-03-27
  • 打赏
  • 举报
回复
引用 2 楼 往事111 的回复:
[quote=引用 1 楼 stherix 的回复:] 这两个菜单选项的Id是不是确定是abelSubMenu和StatusSubMenu 还有就是它们的类型是不是肯定SchedulerMenuItem
按https://documentation.devexpress.com/CoreLibraries/DevExpress.XtraScheduler.SchedulerMenuItemId.enum这个做的,应该是没得问题哟[/quote] 建议你在改变Label As文本的地方设个断点 看看到底运行到这里来没有,因为有可能为null 如果不为null,那么Caption在之后是否真的改变了
往事111 2019-03-27
  • 打赏
  • 举报
回复
引用 1 楼 stherix 的回复:
这两个菜单选项的Id是不是确定是abelSubMenu和StatusSubMenu 还有就是它们的类型是不是肯定SchedulerMenuItem
按https://documentation.devexpress.com/CoreLibraries/DevExpress.XtraScheduler.SchedulerMenuItemId.enum这个做的,应该是没得问题哟
exception92 2019-03-27
  • 打赏
  • 举报
回复
没有这样汉化过,我都是使用汉化包全部汉化。
stherix 2019-03-26
  • 打赏
  • 举报
回复
这两个菜单选项的Id是不是确定是abelSubMenu和StatusSubMenu 还有就是它们的类型是不是肯定SchedulerMenuItem

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧