我用vb 做了一个简单的计算器 + - * / ^2 基本功能可以实现..但是只基于鼠标单击操作..
在我给里面添加 键盘输入时遇到个问题..(暂时只加了键盘 “1”的输入 )当我打开程序时,第一次按1键没有任何反映.鼠标点击过cmdn_n1后,这时候键盘输入才有效...不知道问题所在
完整程序地址 http://free.ys168.com/?myjie 0723文件中.(因为在网吧提问,最好打开前查查毒..)
另外 程序中有任何错误.不好或不适当的地方请您指出..谢谢
实在是没有找到这里上传文件的地方...麻烦您了
在我给里面添加 键盘输入时遇到个问题..(暂时只加了键盘 “1”的输入 )当我打开程序时,第一次按1键没有任何反映.鼠标点击过cmdn_n1后,这时候键盘输入才有效...不知道问题所在
完整程序地址 http://free.ys168.com/?myjie 0723文件中.(因为在网吧提问,最好打开前查查毒..)
另外 程序中有任何错误.不好或不适当的地方请您指出..谢谢
实在是没有找到这里上传文件的地方...麻烦您了
If KeyAscii = 49 Then
Me.Text1 = 1
End IfEnd Sub
开发小应用来练手之前请仔细观察同类软件,MS的计算器就是好例子,当你按下某一数字键时你会发现它对应的按钮也有一个点击的动作,所以你的问题就很简单了,只要在窗体范围检测键盘动作,比如检测到的键是1,那么你就直接调用在你用MOUSE点1时的处理过程,因为你说过你的MOUSECLICK操作是一切OK的。简单吧。代码重用很重要啊!
Private Sub CmdN_1_KeyPress(KeyAscii As Integer)
If KeyAscii = 49 Then
If FLAG1 = 1 Then X = ""
If FLAG = 0 Then
X = X & 1
Lbl_Show.Caption = X
Else
Y = Y & 1
Lbl_Show.Caption = Y
End If
End If
End Sub '1 键盘
-------------------------------------------------
模块:
Public X As String '保存第一个数
Public Y As String '保存第二个数
Public Z As Double '保存运算结果
Public FLAG As Integer '用于"+ - * / % ^2"标记 初始值为0
Public FLAG1 As Integer '用于 "=" 的标记 初始值为0
-------------------------------------------------
但是,正我我发贴是说的 第一次按键盘 1 键时,没有任何反映,当我用鼠标单击过 按钮1 时,这时候键盘的1 键才可以有反映....上面说的“按下某一数字键时你会发现它对应的按钮也有一个点击的动作”,我也发现这个问题了,我开始想的就是,当我发现键盘有输入是,执行鼠标单击事件..但是我不知道如何实现,我刚刚接触的vb.实在是不知道如何实现...
Private Sub Command1_KeyPress(KeyAscii As Integer)
If KeyAscii = 49 Then
Me.Text1 = 1
End IfEnd Sub
这段和我这段一个意思吧....为什么我的第一次识别不了呢?
因为我在CmdN_1_KeyPress中 添加的代码...
如果是放在Form_KeyPress下应该就好了...大概是这样了
明天我试试,现在在网吧,还有保护卡,安装完了老师提示重起才可以用vb 我郁闷死....
很感谢上楼...
楼上的伙计,我打不开你传的,缺少.dll文件我中午的时候把键盘输入+进去啦,但是我想把敲击-键盘回车键是 等同于“=”,
if KeyAscii = 61 Then Call CmdS_Amount_Click
if KeyAscii = 13 Then Call CmdS_Amount_Click
我觉得,第一行是键盘“=”,第二行是键盘“enter”,可是当我输入的时候是这样的:
8 + 8 = 16
当我输入 回车的时却是 168
再回车 就是1688
16888
.
.
.
这是为嘛?.......
1:关于数字的有效性认证(比如除数不能为0,负数不能开方等等)
2:关于小数点的判断(一个数内不能有两个以上小数点)
3:关于算法的问题(数字是否溢出?)
干脆我给个源代码你得了~自己写的~没有任何BUG