找回密码
 立即注册

QQ登录

只需一步,快速开始

sxyweiren
中级会员   /  发表于:2017-9-15 01:09:49
12#
Leo 发表于 2017-9-8 08:43
不能先取一下Active Form的状态缓存下来么?

解决案在我们实际的程序不好使的原因找到了,
原因:
我们实际的程序中调用子画面使用的【F10】Key。上面做的Demo中用的是【F5】Key
我们发现GcClassicFunctionKey中【F10】Key是一个特殊的快捷键。
回复 使用道具 举报
Leo
超级版主   /  发表于:2017-9-8 08:43:09
11#
sxyweiren 发表于 2017-8-31 18:20
虽然说Demo可以做到有效拦截了。但是在我们实际的程序中并不管用。
因为我们程序比较复杂的走了各种Chec ...

不能先取一下Active Form的状态缓存下来么?
回复 使用道具 举报
sxyweiren
中级会员   /  发表于:2017-8-31 18:20:28
10#
Leo 发表于 2017-8-31 09:52
我能重现你说的那个问题。
你试试看把业务逻辑框上ActiveForm的判定:

虽然说Demo可以做到有效拦截了。但是在我们实际的程序中并不管用。
因为我们程序比较复杂的走了各种Check,
并且有DB查询,赋值的操作。
然后悲剧的走到这里发现ActiveForm=Me了。
还有没有其他有效的方法能够拦截?

我这边尽量增加一些逻辑什么的看能够让拦截无效么。
回复 使用道具 举报
Leo
超级版主   /  发表于:2017-8-31 09:52:27
9#
我能重现你说的那个问题。
你试试看把业务逻辑框上ActiveForm的判定:
  1.                 If Object.ReferenceEquals(Form.ActiveForm, Me) Then
  2.                     Console.WriteLine("Form1的GcClassicFunctionKey1_FunctionKeyPress")
  3.                 End If
复制代码
回复 使用道具 举报
sxyweiren
中级会员   /  发表于:2017-8-30 18:57:30
8#
Leo 发表于 2017-8-30 17:47
那个无所谓,在Key处理这一块, v8 和v10区别不大。应该也能重现。你是Win10 啊?

恩。Win10,你看看好再现么。





本帖子中包含更多资源

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

x
回复 使用道具 举报
Leo
超级版主   /  发表于:2017-8-30 17:47:43
7#
sxyweiren 发表于 2017-8-30 17:41
就是上面的那个方式,作出两个Form来,然后直接整事件就好了.

我看看明天整个demo给传上去.

那个无所谓,在Key处理这一块, v8 和v10区别不大。应该也能重现。你是Win10 啊?
回复 使用道具 举报
sxyweiren
中级会员   /  发表于:2017-8-30 17:41:56
6#
Leo 发表于 2017-8-30 17:27
给个Demo瞅瞅。我改改看。

就是上面的那个方式,作出两个Form来,然后直接整事件就好了.

我看看明天整个demo给传上去.
但是我这里的版本跟你那里不一样,有可能需要你自己换参照.
回复 使用道具 举报
Leo
超级版主   /  发表于:2017-8-30 17:27:19
5#
给个Demo瞅瞅。我改改看。
回复 使用道具 举报
sxyweiren
中级会员   /  发表于:2017-8-25 17:28:56
地板
Leo 发表于 2017-8-25 17:15
你在启动其他画面之前,调用一个Application.DoEvents() 看看好使不。

不好使,还是照样触发
回复 使用道具 举报
sxyweiren
中级会员   /  发表于:2017-8-25 17:28:54
板凳
Leo 发表于 2017-8-25 17:15
你在启动其他画面之前,调用一个Application.DoEvents() 看看好使不。

不好使,还是照样触发
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部