vb题,求解
3个回答
展开全部
程序通过if已经把除字符以外的屏蔽掉了。
KeyPress 事件
此事件当用户按下和松开一个 ANSI 键时发生。
语法
Private Sub Form_KeyPress(keyascii As
Integer)
Private Sub object_KeyPress([index As Integer,]keyascii As Integer)
KeyPress 事件语法包含下列部分:
部分
描述
object
一个对象表达式,其值是“应用于”列表中的一个对象。
index
一个整数,它用来唯一标识一个在控件数组中的控件。
keyascii
是返回一个标准数字 ANSI 键代码的整数。Keyascii
通过引用传递,对它进行改变可给对象发送一个不同的字符。将 keyascii 改变为 0
时可取消击键,这样一来对象便接收不到字符。
说明
具有焦点的对象接收该事件。一个窗体仅在它没有可视和有效的控件或
KeyPreview 属性被设置为 True 时才能接收该事件。一个 KeyPress
事件可以引用任何可打印的键盘字符,一个来自标准字母表的字符或少数几个特殊字符之一的字符与 CTRL 键的组合,以及 ENTER 或 BACKSPACE
键。KeyPress 事件过程在截取 TextBox 或 ComboBox
控件所输入的击键时是非常有用的。它可立即测试击键的有效性或在字符输入时对其进行格式处理。改变 keyascii
参数的值会改变所显示的字符。
可使用下列表达式将 keyascii
参数转变为一个字符:
Chr(KeyAscii)
然后执行字符串操作,并将该字符反译成一个控件可通过该表达式解释的 ANSI 数字:
KeyAscii = Asc(char)
应当使用 KeyDown 和 KeyUP 事件过程来处理任何不被 KeyPress 识别的击键,诸如:功能键、编辑键、定位键以及任何这些键和键盘换档键的组合等。与 KeyDown 和 KeyUp
事件不同的是,KeyPress 不显示键盘的物理状态,而只是传递一个字符。
KeyPress 将每个字符的大、小写形式作为不同的键代码解释,即作为两种不同的字符。而 KeyDown 和 KeyUp
用两种参数解释每个字符的大写形式和小写形式:keycode — 显示物理的键(将 A 和 a
作为同一个键返回)和 shift —指示 shift + key 键的状态而且返回 A 或 a 其中之一。
如果 KeyPreview 属性被设置为
True,窗体将先于该窗体上的控件接收此事件。可用 KeyPreview 属性来创建全局键盘处理例程。
注意...CTRL+@ 的键盘组合的 ANSI 编号是 0。因为
Visual Basic 将一个零值的 keyascii 识别为一个长度为零的字符串
(""),在应用程序中应避免使用 CTRL+@ 的组合。
KeyPress 事件
此事件当用户按下和松开一个 ANSI 键时发生。
语法
Private Sub Form_KeyPress(keyascii As
Integer)
Private Sub object_KeyPress([index As Integer,]keyascii As Integer)
KeyPress 事件语法包含下列部分:
部分
描述
object
一个对象表达式,其值是“应用于”列表中的一个对象。
index
一个整数,它用来唯一标识一个在控件数组中的控件。
keyascii
是返回一个标准数字 ANSI 键代码的整数。Keyascii
通过引用传递,对它进行改变可给对象发送一个不同的字符。将 keyascii 改变为 0
时可取消击键,这样一来对象便接收不到字符。
说明
具有焦点的对象接收该事件。一个窗体仅在它没有可视和有效的控件或
KeyPreview 属性被设置为 True 时才能接收该事件。一个 KeyPress
事件可以引用任何可打印的键盘字符,一个来自标准字母表的字符或少数几个特殊字符之一的字符与 CTRL 键的组合,以及 ENTER 或 BACKSPACE
键。KeyPress 事件过程在截取 TextBox 或 ComboBox
控件所输入的击键时是非常有用的。它可立即测试击键的有效性或在字符输入时对其进行格式处理。改变 keyascii
参数的值会改变所显示的字符。
可使用下列表达式将 keyascii
参数转变为一个字符:
Chr(KeyAscii)
然后执行字符串操作,并将该字符反译成一个控件可通过该表达式解释的 ANSI 数字:
KeyAscii = Asc(char)
应当使用 KeyDown 和 KeyUP 事件过程来处理任何不被 KeyPress 识别的击键,诸如:功能键、编辑键、定位键以及任何这些键和键盘换档键的组合等。与 KeyDown 和 KeyUp
事件不同的是,KeyPress 不显示键盘的物理状态,而只是传递一个字符。
KeyPress 将每个字符的大、小写形式作为不同的键代码解释,即作为两种不同的字符。而 KeyDown 和 KeyUp
用两种参数解释每个字符的大写形式和小写形式:keycode — 显示物理的键(将 A 和 a
作为同一个键返回)和 shift —指示 shift + key 键的状态而且返回 A 或 a 其中之一。
如果 KeyPreview 属性被设置为
True,窗体将先于该窗体上的控件接收此事件。可用 KeyPreview 属性来创建全局键盘处理例程。
注意...CTRL+@ 的键盘组合的 ANSI 编号是 0。因为
Visual Basic 将一个零值的 keyascii 识别为一个长度为零的字符串
(""),在应用程序中应避免使用 CTRL+@ 的组合。
追问
然后呢?
追答
你的程序代码的大概:
就是,如果你按下数字键,就添加在文本框中,如果不是数字键,就取消,并显示出来。
展开全部
text的keypress事件就是当焦点在文本框上时,键盘如果输入一个值,则立刻触发该事件,即k获得输入的字符的ASC码值,且如果k=0(不是说输入的是0,而是说输入的字符的ASC码值为零)则取消该字符的按键,当事件结束后。
所以这道题目是说,如果所按的按键不是ASC码值在0~9,即字符1~8的话,就取消该字符按键,并且在窗体上打印此时text1的文本内容。
懂了吗~求好评~
所以这道题目是说,如果所按的按键不是ASC码值在0~9,即字符1~8的话,就取消该字符按键,并且在窗体上打印此时text1的文本内容。
懂了吗~求好评~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-04-19
展开全部
输出结果
12
12+3
12+3-5
12
12+3
12+3-5
更多追问追答
追问
可答案是
12
123
1235
追答
那么符号被过滤掉了。
因为符号不是数字范围内的时候,k=0了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询