条码采集器开发Windows CE中用ENTER键实现TAB键的功能

2014年2月15日

在一般的Windows Forms C#编程中我们可以通过检测回车事件,然后使用SendKeys.Send(“{TAB}”);来实现。
但Windows CE(.NET Framework 2.0)中不支持SendKeys.Send方法,因此可以改为调用keybd_event这个API来实现。

例如:
1、引入命名空间:
using System.Runtime.InteropServices;

2、keybd_event方法定义:
[DllImport(“Coredll.dll”, EntryPoint = “keybd_event”)]
public static extern void keybd_event(
byte bVk,
byte bScan,
int dwFlags,
int dwExtraInfo
);
注:Coredll.dll它是一个会被所有用户进程都加载的动态链接库,所有的应用程序都不能直接与操作系统或硬件打交道,如果用户程序需要访问Windows CE所提供的服务,那么必须通过Coredll.dll来进行。

3、keybd_event方法调用:
private void txtNumber_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == ‘\r’)//ENTER键
{
if (txtNumber.Text.Trim() != “”)
{
keybd_event(9, 0, 0, 0);//TAB键 KeyCode为9
}
else
{
txtNumber.Focus();
}
}
}
注:示例中txtNumber为TextBox输入框

声明: 本文采用 BY-NC-SA 协议进行授权. 转载请注明转自: 条码采集器开发Windows CE中用ENTER键实现TAB键的功能
本文的评论功能被关闭了.