Keith™ 发表于 2007-2-12 14:14:17

ESC in sub

好吧,也许我不明白,但是你怎么能在表单中捕获ESC键呢?我想做的是在我的一个子表单中捕获用户是否点击ESC。让我先备份一下,我有一个表单,当用户单击按钮时,它会调用模块中的子表单。我试图避免的是50个公共子表单。我想要的是调用私有子表单。既然你不能在不同的模块中调用私有子表单,那么我是否需要删除我的模块并将所有内容都放在表单的代码部分中?这种方法有什么问题吗?当我尝试为ESC键声明常量时,您无法在表单对象中声明常量。(否则我也做错了)我试图从post中使用RR的例程。
任何想法......
**** Hidden Message *****

Keith™ 发表于 2007-2-12 15:17:29

我还是不明白你想做什么…你是想阻止一个人按下ESC键退出表单吗?但是,你可以在queryclose中获取值并保持表单打开,如果你只是想知道用户是否按下了esc键,你应该能够从KeyDown事件中返回值,但这很有趣,我不相信

Keith™ 发表于 2007-2-12 15:39:02

如果用户按下ESC,我没有错误处理程序。如果这样做,它会生成一个未处理的Err Exp。因此,我试图优雅地处理它。作为测试,我最后做的是将代码放入每个模块中(1目前作为测试),我已经开始测试按ESC键的各个方向,看看它是否捕捉到它
另一方面,我已将所有SUB更改为函数,这将它们从可运行的宏列表中删除。这有什么坏处吗?当没有返回值时,我总是使用subs,当我想返回值时使用函数。在C#中,可以将其声明为VOID,但VBA不使用它(我不知道)。

Keith™ 发表于 2007-2-12 16:12:59

你试过键盘挂钩或GetAsyncKeyState吗?
试着看看这两篇文章,我会发布一个例子,但在这里发布太复杂了。
http://www.codeguru.com/vb/gen/vb_system/keyboard/print.php/c4829/
http://www.pscode.com/vb/scripts/ShowCode.asp?txtCodeId=41506&lngWId=1

Keith™ 发表于 2007-2-12 16:27:13


是的,这就是我使用的
页: [1]
查看完整版本: ESC in sub