iceman 发表于 2013-12-13 17:26:00

回复 10楼dafeng520的帖子

dafeng520 你好,

你描述的问题我已经重现了,并且我使用 .NET 平台标准 button 和 TabControl 做了测试,C1 触发事件的顺序和标准行为确实不同。

我需要把这个问题反馈给产品组调查,再得到反馈后通知你。

谢谢

dafeng520 发表于 2013-12-16 14:54:00

希望你们抓紧时间修改和更新,并给出具体的补丁发布时间。由于我们产品急需发布,如果到时还不能解决问题,我们会考虑换用别的控件。

iceman 发表于 2013-12-16 16:20:00

回复 12楼dafeng520的帖子

dafeng520 你好,

我已经把问题提交给产品组,并且再次发送了确认邮件。

通过站内短消息发送的问题,我已经做了一一回复。请查看收件箱。

iceman 发表于 2013-12-23 14:39:00

回复 12楼dafeng520的帖子

dafeng520 你好,
事件处理顺序可能无法更改,C1TabControl 在消息管道中抓取消息的时机比 ActiproSoftware 的 DockWindow 要早。
可以考虑通过逻辑来控制事件内代码的执行顺序。或者直接使用微软自带的 TabControl 替代。

谢谢

dafeng520 发表于 2013-12-24 08:22:00

由于点击到C1的控件上都会出现如此效果,如C1FlexGrid上,所以目前看来替换是不能解决问题了。逻辑控制的,能否给出demo?

iceman 发表于 2013-12-24 18:50:00

回复 15楼dafeng520的帖子

问题正在处理中,明天回复

iceman 发表于 2013-12-25 10:31:00

回复 15楼dafeng520的帖子

dafeng520 你好,
查看 Demo 中 DockingWindow 为 ActiproSoftware 三方控件,所以不可避免的会出现这种情况。消息机制处理的先后和控件内部获取时机有关。
请你试试以下这段代码:

      private void C1TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
      {
            DockingWindow dw = this.Parent as DockingWindow;
            if (dw!=null)
            {
                dw.Activate(true);
            }
            if (this.IsLoaded)
            {
                Debug.Print("C1TabControlClicked" + (sender as C1TabControl).SelectedIndex + ":" + title);
                ucactiveFlag = false;
            }
      }


以上只是一些建议,希望能对你有所帮助。
页: 1 [2]
查看完整版本: 【WinForms】控件事件触发顺序问题