找回密码
 立即注册

QQ登录

只需一步,快速开始

[已处理] Calendar选择

szld
论坛元老   /  发表于:2013-8-30 15:06:00
11#
还望版主尽快帮忙解决一下啊
回复 使用道具 举报
gw0506
超级版主   /  发表于:2013-8-30 15:27:00
12#
我看到你这个项目是日文版本,所以这样细节的需求我能够理解。
1. 从需求来说,比如用户想选择20号,他需要点1下20,弹出框点一下确定。这是点2次。如果他不想选20,需要点1下20,点一下取消。这也是2次跟他点1次20,再点回30号,一样都是2次。所以我建议你可以沟通一下,这个需求是否可以调整。从用户体验角度应该调整。
2. Calendar确实没有changing事件,所以无法取消操作。
回复 使用道具 举报
gw0506
超级版主   /  发表于:2013-8-30 15:36:00
13#
如果要求你必须完成这个需求,可以用下面的代码实现:
  1.         private DateTime tempDateTime = DateTime.Now;
  2.         private void c1Calendar1_SelectionChanged(object sender, C1.Win.C1Schedule.SelectionChangedEventArgs e)
  3.         {
  4.             if (MessageBox.Show("确认改变日期吗?","请确认",MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes)
  5.             {
  6.                 tempDateTime = System.Convert.ToDateTime(e.Selection.GetValue(0));
  7.             }
  8.             else
  9.             {
  10.                 this.c1Calendar1.SelectionChanged -= new System.EventHandler<C1.Win.C1Schedule.SelectionChangedEventArgs>(this.c1Calendar1_SelectionChanged);
  11.                 this.c1Calendar1.SelectedDates = new DateTime[] { tempDateTime };
  12.                 this.c1Calendar1.SelectionChanged += new System.EventHandler<C1.Win.C1Schedule.SelectionChangedEventArgs>(this.c1Calendar1_SelectionChanged);
  13.             }
  14.         }
复制代码
回复 使用道具 举报
szld
论坛元老   /  发表于:2013-8-30 15:36:00
14#
是这样的,当前是30号,画面数据做了一些修改没保存点了20号,这个时候应该弹对话框提醒用户当前画面的数据有修改要不要跳到20号,用户点确定那就跳到20号,点取消那还停在当前30号,这是很正常的流程
回复 使用道具 举报
gw0506
超级版主   /  发表于:2013-8-30 15:42:00
15#
那我明白了。
如果这样的话,你是在界面的某一个地方应该记录了上次的日期,我给你的代码中的tempDataTime也许可以用你实际项目中的另一个值替换。这样可以节省一个临时变量。
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部