十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
在窗体上放置以下控件:
网站建设公司,为您提供网站建设,网站制作,网页设计及定制网站建设服务,专注于企业网站建设,高端网页制作,对成都工商代办等多个行业拥有丰富的网站建设经验的网站建设公司。专业网站设计,网站优化推广哪家好,专业成都网站营销优化,H5建站,响应式网站。
1、lblResult Label控件 设置lblResult.Caption = 0
2、btnNum(0)~btnNum(9) 按钮控件数组,下标对应齐数字(如:btnNum(0).Caption=0,依次类推)
3、添加btnAdd(加法)、btnSub(减法)、btnMul(乘法)、btnDiv(除法)、btnEnter(等于号)、btnReset(清除键)六个按钮。
在窗体代码中输入以下内容:
Dim byteOperation As Byte '操作符
Dim byteTmp As Byte '临时操作符
Dim intNum As Double '输入的数字
Sub Calc()
Select Case byteOperation
Case 1 'Add
lblResult.Caption = CDbl(lblResult.Caption) + intNum
Case 2 'Sub
lblResult.Caption = intNum - CDbl(lblResult.Caption)
Case 3 'Mul
lblResult.Caption = CDbl(lblResult.Caption) * intNum
Case 4 'Div
lblResult.Caption = intNum / CDbl(lblResult.Caption)
Case Else
End Select
End Sub
Private Sub btnNum_Click(Index As Integer)
If byteTmp 0 Then
intNum = lblResult.Caption
lblResult.Caption = 0
byteTmp = 0
End If
If lblResult.Caption = 0 Then
lblResult.Caption = Index
Else
If Len(lblResult.Caption) 9 Then
lblResult.Caption = lblResult.Caption Index
End If
End If
End Sub
Private Sub btnAdd_Click()
If byteOperation 0 Then
Call Calc
End If
byteOperation = 1
byteTmp = 1
End Sub
Private Sub btnReset_Click()
byteTmp = 0
byteOperation = 0
intNum = 0
lblResult.Caption = 0
End Sub
Private Sub btnSub_Click()
If byteOperation 0 Then
Call Calc
End If
byteOperation = 2
byteTmp = 2
End Sub
Private Sub btnMul_Click()
If byteOperation 0 Then
Call Calc
End If
byteOperation = 3
byteTmp = 3
End Sub
Private Sub btnDiv_Click()
If byteOperation 0 Then
Call Calc
End If
byteOperation = 4
byteTmp = 4
End Sub
Private Sub btnEnter_Click()
Call Calc
byteTmp = 0
End Sub
一、模拟键盘操作
以下示例程序当点击button1按钮,模拟键盘在文本框textBox1中作输入操作,详细说明请参看MSDN帮助中的SendKeys类。
//事件完整代码
private void button1_Click(object sender, System.EventArgs e)
{
this.textBox1.Focus(); //先必须让文本框得到焦点,因为焦点在button1上
SendKeys.Send("^a"); //Ctrl+A
SendKeys.Send("{DEL}"); //Delete
SendKeys.Send("+(ec)"); //Shift+"ec"
SendKeys.Send("{ENTER}"); //Enter
SendKeys.Send("+ec"); //Shift+'e'+'c'
SendKeys.Send("{ENTER}"); //Enter
SendKeys.Send("{h 10}"); //"hhhhhhhhhh"
SendKeys.Send("{ENTER}"); //Enter
SendKeys.Send("^%{DEL}"); //Alt+Ctrl+Del
}
二、模拟鼠标操作
以下示例程序当点击DBButton按钮,模拟鼠标双击窗体事件,并将鼠标向左上方移动10*10象素,其它操作类似。
//引入名字空间
using System.Runtime.InteropServices
//申明
[DllImport("user32")]
private static extern int mouse_event(int dwFlags,int dx,int dy, int cButtons, int dwExtraInfo);
const int MOUSEEVENTF_MOVE = 0x0001;
const int MOUSEEVENTF_LEFTDOWN = 0x0002;
const int MOUSEEVENTF_LEFTUP = 0x0004;
const int MOUSEEVENTF_RIGHTDOWN = 0x0008;
const int MOUSEEVENTF_RIGHTUP = 0x0010;
const int MOUSEEVENTF_MIDDLEDOWN = 0x0020;
const int MOUSEEVENTF_MIDDLEUP = 0x0040;
const int MOUSEEVENTF_ABSOLUTE = 0x8000;
//事件完整代码
private void Form_DoubleClick(object sender, System.EventArgs e)
{
MessageBox.Show("你双击了屏幕");
}
private void DBButton_Click(object sender, System.EventArgs e)
{
mouse_event(MOUSEEVENTF_MOVE,-10,-10,0,0); //移动鼠标,否则事件发生在按钮上
Down,Up合为一次单击事件
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
}
你每点一次tab是从你那个按钮的下一个控件向后跳跃的。
因为你点的时候,你的当前控件就是你的按钮。
2种方法:
1。用两个界面,一个界面的按钮控制另一个界面的tab跳跃
2。每次tab变化都记录一下,这样你才能得到点按钮之前是那个控件为当前,才能nextcongtrol
可以啊 :
你要画好键盘,用一个图片框放键盘,然后在每个键的位置画上label(最好使用控件数组),在单击label的事件中用
textx.text=textx.text zf
这样的代码,textx表示获得焦点的文本框,zf表示字符
tab是
"{TAB}".==========SendKeys
语句
将一个或多个按键消息发送到活动窗口,就如同在键盘上进行输入一样。语法SendKeys
string[,
wait]SendKeys
语句的语法具有以下几个命名参数:部分
描述
string
必需的。字符串表达式,指定要发送的按键消息。
Wait
可选的。指定等待方式的
BooleandefBooleanDataType@veendf98.chm
值。如果为
False(缺省值),则控件在按键发送出去之后立刻返回到过程。如果为
True,则按键消息必须在控件返回到过程之前加以处理。
说明每个按键由一个或多个字符表示。为了指定单一键盘字符,必须按字符本身的键。例如,为了表示字母
A,可以用
"A"
作为
string。为了表示多个字符,就必须在字符后面直接加上另一个字符。例如,要表示
A、B
及
C,可用
"ABC"
作为
string。对
SendKeys
来说,加号
(+)、插入符
(^)、百分比符号
(%)、上划线
(~)
及圆括号
(
)
都具有特殊意义。为了指定上述任何一个字符,要将它放在大括号
({})
当中。例如,要指定正号,可用
{+}
表示。方括号
([
])
对
SendKeys
来说并不具有特殊意义,但必须将它们放在大括号中。在其它应用程序中,方括号有特殊意义,在出现动态数据交换
(DDE)
的时候,它可能具有重要意义。为了指定大括号字符,请使用
{{}
及
{}}。为了在按下按键时指定那些不显示的字符,例如
ENTER
或
TAB
以及那些表示动作而非字符的按键,请使用下列代码:按键
代码
BACKSPACE
{BACKSPACE},
{BS},
或
{BKSP}
BREAK
{BREAK}
CAPS
LOCK
{CAPSLOCK}
DEL
or
DELETE
{DELETE}
或
{DEL}
DOWN
ARROW
{DOWN}
END
{END}
ENTER
{ENTER}或
~
ESC
{ESC}
HELP
{HELP}
HOME
{HOME}
INS
or
INSERT
{INSERT}
或
{INS}
LEFT
ARROW
{LEFT}
NUM
LOCK
{NUMLOCK}
PAGE
DOWN
{PGDN}
PAGE
UP
{PGUP}
SCREEN
{PRTSC}
RIGHT
ARROW
{RIGHT}
SCROLL
LOCK
{SCROLLLOCK}
TAB
{TAB}
UP
ARROW
{UP}
F1
{F1}
F2
{F2}
F3
{F3}
F4
{F4}
F5
{F5}
F6
{F6}
F7
{F7}
F8
{F8}
F9
{F9}
F10
{F10}
F11
{F11}
F12
{F12}
F13
{F13}
F14
{F14}
F15
{F15}
F16
{F16}
为了指定那些与
SHIFT、CTRL
及
ALT
等按键结合的组合键,可在这些按键码的前面放置一个或多个代码,这些代码列举如下:按键
代码
SHIFT
+
CTRL
^
ALT
%
为了说明在按下其它按键时应同时按下
SHIFT、CTRL、及
ALT
的任意组合键,请把那些按键的码放在括号当中。例如,为了说明按下
E
与
C
的时候同时按下
SHIFT
键,请使用
"+(EC)"。为了说明在按下
E
的时候同时按下
SHIFT
键,但接着按
C
而不按
SHIFT,则使用
"+EC"。为了指定重复键,使用
{key
number}
的形式。必须在
key
与
number
之间放置一个空格。例如,{LEFT
42}
意指
42
次按下
LEFT
ARROW
键;{h
10}
则是指
10
次按下
H
键。注意
不能用
SendKeys
将按键消息发送到这样一个应用程序,这个应用程序并没有被设计成在
Microsoft
Windows
中运行。Sendkeys
也无法将
SCREEN
按键
{PRTSC}
发送到任何应用程序。
参考资料:MSDN