VB一个简单的键盘按键响应程序

VB一个简单的键盘按键响应程序,第1张

因为vbShiftMask,vbCtrlMask,vbAltMask是按位排列的,即2^n(n=0,1,2),分别为1,2,4,像这种情况,程序处理的时候就要用到位运算符(And)来处理这种数据。这个程序可以简化,你看看下面的。组合键情况显示在窗体Caption里。

代码如下。

=====================

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

Dim s As String

If (Shift And vbShiftMask) = vbShiftMask Then s = s & "SHIFT" & " "

If (Shift And vbCtrlMask) = vbCtrlMask Then s = s & "CTRL" & " "

If (Shift And vbAltMask) = vbAltMask Then s = s & "ALT" & " "

Caption = s

End Sub

这个确实很简单,你的键值用以为数码管就可以显示,可见你的按键个数不超过16个,但是不知道你的按键排列是怎么样,是独立式还是行列式,就是你的按键是占用16个io口还是4个,也不知道你是用要c程序还是汇编程序,我要修周末了,周一上班,如果周一还没解决可以给我发邮件,lx19840607@hotmailcom,也可以发消息给我

简单说一下,你要搞清楚你的数码管是共阴还是共阳,写一个数码管的驱动程序,可以一直循环,去查找有没有按键按下,没有就显示数据,有的话,就改变一下要显示的数据,然后循环显示

while(1)

{

while(没有键按下)

{

显示第一位数

显示第二位数

}

查找是那个按键被按下,得到键值

更改要显示的数据

}

如果你不知道怎么获得键值,建议你看一看单片机原理与接口技术,清华大学出版社,学校学单片机都用这本教材,相信你手上也有,第282页开始

反正解决不了就发邮件吧, 告诉我你QQ也行

void _Key(void)

{

if(!Key) //有按键按下

{

Delay(500); 延时

if(!Key) //还是按下状态,即长击

{

Disp("2");

}

else //否则就是短击

{

Disp("1");

}

}

else //没有按键按下

{

Disp("3");

}

}

大概思路是这样,延迟函数自己掌握,一般还要加消抖(也就是较短的延时后再判断一次按键状态)

//我不知道你的具体要求,将响应事件设为在输入后按回车

import javaawt;

import javaawtevent;

import javaxswing;

class Huida//自定义组件

{ JFrame f;//声明一个视窗组件对象

Container c;//声明一个中间层组件面板

JTextField jtf1,jtf2,jtf3;//声明一个单行文本框

JButton b,b1;//声明一个按钮组件对象

JLabel text;

public void creatInterface()

{ // int m=0;

f=new JFrame("计算器");//实例化顶层

c=fgetContentPane();//添加中间层到视窗组件

csetLayout(new FlowLayout());//布局管理器

jtf1=new JTextField("",10);//10列

jtf1setEditable(true);//设置文本框属性为可以编辑

jtf1setHorizontalAlignment(JTextFieldRIGHT );//设置文本框内容右对齐

jtf2=new JTextField("",10);//10列

jtf2setEditable(true);//设置文本框属性为可以编辑

jtf2setHorizontalAlignment(JTextFieldRIGHT );

text=new JLabel("");

jtf1addActionListener(

new ActionListener()//匿名内部类

{public void actionPerformed(ActionEvent e)

{ for(int i=0;i<jtf1getText()length();i++)

{

char ch=jtf1getText()charAt(i);//返回组成jtf1的每个字符

if(CharacterisDigit(ch))

{ jtf2requestFocus(true);

textsetText("输入正确");

}

else

{ jtf1requestFocus(true);

textsetText("请输入数字");

}}

}});

jtf2addActionListener(

new ActionListener()//匿名内部类

{public void actionPerformed(ActionEvent e)

{ for(int i=0;i<jtf2getText()length();i++)

{

char ch=jtf2getText()charAt(i);//返回组成jtf2的每个字符

if(CharacterisDigit(ch))

{ brequestFocus(true);

textsetText("输入正确");}

else

{ jtf2requestFocus(true);

textsetText("请输入数字");

}}

}});

b=new JButton("确定");

b1=new JButton("重置");

baddActionListener(

new ActionListener()//匿名内部类

{public void actionPerformed(ActionEvent e)

{

}

});

b1addActionListener(

new ActionListener()//匿名内部类

{public void actionPerformed(ActionEvent e)

{ jtf1setText("");

jtf2setText("");

textsetText("");}

});

cadd(jtf1);//添加文本框到中间层

cadd(jtf2);//添加文本框到中间层

cadd(text);

cadd(b);//添加按钮到中间层

cadd(b1);//添加按钮到中间层

csetBackground(Colorblue);//设置背景颜色

fsetSize(400,200);//设置大小

fsetResizable(false);

fsetVisible(true);//设置为可见

}

public static void main(String args[])

{

Huida m=new Huida();

mcreatInterface();

}

}

以上就是关于VB一个简单的键盘按键响应程序全部的内容,包括:VB一个简单的键盘按键响应程序、单片机按键程序、求关于单片机按键的程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zz/9783596.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存