找回密码
 立即注册

QQ登录

只需一步,快速开始

soulxj2020

初级会员

7

主题

88

帖子

437

积分

初级会员

积分
437

圣诞拼拼乐微信认证勋章

soulxj2020
初级会员   /  发表于:2020-5-14 10:52  /   查看:10220  /  回复:16
10金币
本帖最后由 soulxj2020 于 2020-5-20 09:58 编辑

环境:VS2015+Win7+.Net4.6.2(WinForm开发)+C1.Win.C1Schedule.4

背景:
  业务需求1:c1Schedule的显示(滚动)位置,能记住/定位到指定点。
  业务需求2:双c1Schedule时,两边显示(滚动)位置,能同步。

针对需求1,我的同事在这个贴子里selectedinterval的设置问题尝试通过设置selectedinterval来实现,结果控件不支持。
所以我们现在尝试设置滚动条位置来解决上述需求1,2。
过程中,发现本贴的问题。

现象&问题:如题所述。在c1Schedule_Scroll最开始设置断点,也跑不进去。。。

事件绑定如下:
this.c1SchedulePlan.Scroll += new System.Windows.Forms.ScrollEventHandler(this.c1Schedule_Scroll);
this.c1ScheduleReport.Scroll += new System.Windows.Forms.ScrollEventHandler(this.c1Schedule_Scroll);

事件实现:
  1. <font face="微软雅黑">private void c1Schedule_Scroll(object sender, ScrollEventArgs e)
  2. {
  3.         try
  4.         {
  5.                 if (!_Interlocking)
  6.                 {
  7.                         // スクロール連動の排他的制御
  8.                         _Interlocking = true;
  9.                         C1Schedule scdl = sender as C1Schedule;
  10.                         scdl.Update();
  11.                         Point pt = scdl.AutoScrollPosition;

  12.                         if (scdl.Equals(c1SchedulePlan))
  13.                         {
  14.                                 c1ScheduleReport.AutoScrollPosition = new Point(c1SchedulePlan.AutoScrollPosition.X, pt.Y);
  15.                         }
  16.                         else if (scdl.Equals(c1ScheduleReport))
  17.                         {
  18.                                 c1SchedulePlan.AutoScrollPosition = new Point(c1ScheduleReport.AutoScrollPosition.X, pt.Y);
  19.                         }

  20.                         this.Invalidate();
  21.                         this.Update();

  22.                         _Interlocking = false;
  23.                 }
  24.         }
  25.         catch (Exception ex)
  26.         {
  27.                 //ErrorProc(ex);
  28.         }
  29. }</font>
复制代码

麻烦版主帮忙确认一下:
1,c1Schedule_Scroll为什么不能触发,是哪里还有设置遗漏了吗?

2,需求2能通过双c1Schedule绑定c1Schedule_Scroll来实现吗?(即上述代码)请帮我们初步判断一下。

最佳答案

查看完整内容

验证了一下如果是要滚动来设置起始时间的话,可以使用下面的方式设置FirstVisibleTime,在AppointmentChanged事件中来设置就行 另外,关于这个帖子里提到的Scroll事件无法触发的问题,我调查了一下,默认显示的滚动条,并不是c1Schedule1的,c1Schedule1的滚动条设置为Visable后效果如下,也能触发滚动事件,但是本身因为并无滚动的场景,没什么用处

16 个回复

倒序浏览
最佳答案
最佳答案
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-5-14 10:52:12
来自 11#
验证了一下如果是要滚动来设置起始时间的话,可以使用下面的方式设置FirstVisibleTime,在AppointmentChanged事件中来设置就行

  1.         private void c1Schedule1_AppointmentChanged(object sender, AppointmentEventArgs e)
  2.         {
  3.             var dff=e.Appointment.Location;
  4.             c1Schedule1.GoToDate(e.Appointment.Start);
  5.             if (c1Schedule1.ViewType == C1.Win.C1Schedule.ScheduleViewEnum.WorkWeekView)
  6.             {
  7.                 c1Schedule1.ViewType = C1.Win.C1Schedule.ScheduleViewEnum.WeekView;
  8.                 c1Schedule1.ViewType = C1.Win.C1Schedule.ScheduleViewEnum.WorkWeekView;
  9.             }
  10.             c1Schedule1.Settings.FirstVisibleTime = new TimeSpan(e.Appointment.Start.Hour, e.Appointment.Start.Minute, e.Appointment.Start.Second);
  11.             c1Schedule1.Refresh();
  12.         }
复制代码



另外,关于这个帖子里提到的Scroll事件无法触发的问题,我调查了一下,默认显示的滚动条,并不是c1Schedule1的,c1Schedule1的滚动条设置为Visable后效果如下,也能触发滚动事件,但是本身因为并无滚动的场景,没什么用处

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 1满意度 +5 收起 理由
soulxj2020 + 5 很给力!

查看全部评分

回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-5-14 18:26:01
2#
你好,Scroll事件确实无法触发,我先帮你和研发同事确认一下这个问题的原因,否则最后有可能白费功夫
回复 使用道具 举报
soulxj2020
初级会员   /  发表于:2020-5-14 19:05:04
3#
Richard.Ma 发表于 2020-5-14 18:26
你好,Scroll事件确实无法触发,我先帮你和研发同事确认一下这个问题的原因,否则最后有可能白费功夫

收到!谢谢您!
期待好消息!!!
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-5-15 09:21:39
4#


回复 使用道具 举报
soulxj2020
初级会员   /  发表于:2020-5-18 15:54:57
5#
Richard.Ma 发表于 2020-5-14 18:26
你好,Scroll事件确实无法触发,我先帮你和研发同事确认一下这个问题的原因,否则最后有可能白费功夫


请问一下这个问题进展如何啊?
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-5-18 17:06:56
6#
您好,这个问题已经登记为bug,ID:436281
问题可能需要一些时间确认原因

抱歉给你的项目带来影响,方便的话可以私信给我您的联系方式,我们电话沟通一下,你这边的具体需求,然后看看是否有其他的方式可以实现
回复 使用道具 举报
soulxj2020
初级会员   /  发表于:2020-5-18 17:12:46
7#
本帖最后由 soulxj2020 于 2020-5-18 17:21 编辑
Richard.Ma 发表于 2020-5-18 17:06
您好,这个问题已经登记为bug,ID:436281
问题可能需要一些时间确认原因

好的,谢谢详细需求已私信。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-5-18 17:48:59
8#
收到,那目前看起来主要是c1Schedule的显示(滚动)位置需要可以自动调整,我会再验证这个问题
回复 使用道具 举报
soulxj2020
初级会员   /  发表于:2020-5-18 18:56:20
9#
Richard.Ma 发表于 2020-5-18 17:48
收到,那目前看起来主要是c1Schedule的显示(滚动)位置需要可以自动调整,我会再验证这个问题

好的,谢谢!!!
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部