| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 856 人关注过本帖
标题:[讨论][求助]该输出几个A?(已解决,谢谢大家)
取消只看楼主 加入收藏
水无波
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-8-2
收藏
 问题点数:0 回复次数:6 
[讨论][求助]该输出几个A?(已解决,谢谢大家)

今天遇到这样一个问题:
窗体上画一文本框,编写代码如下:
###############################################
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim str As String
str = Chr(KeyAscii)
KeyAscii = Asc(UCase(str))
Text1.Text = String(2, KeyAscii)
End Sub
#################################################
问:程序运行后,按字母“a”,文本框中显示的内容是什么?

我只知道 Text1.Text = String(2, KeyAscii) 这句代码中的string语句产生2个A,所以文本框中显示的内容应该是AA,才对吧?! 可程序运行结果是3个A,即 "AAA"。

希望热心的朋友给我点点拨,在这里先谢谢了!
..........................................................
问题明白了,谢谢大家了啊!

[此贴子已经被作者于2007-8-2 12:43:26编辑过]

搜索更多相关主题的帖子: 输出 
2007-08-02 10:42
水无波
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-8-2
收藏
得分:0 
以下是引用slore在2007-8-2 10:52:40的发言:
你把A键松开后……输入的A

可最后一句是赋值语句啊,text1.text被赋值为2个A的啊!刚才的不保留了吧?

2007-08-02 10:55
水无波
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-8-2
收藏
得分:0 
明白了!谢谢大家! 。。。。。不对啊。。。。。。。

[此贴子已经被作者于2007-8-2 13:02:43编辑过]


2007-08-02 12:42
水无波
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-8-2
收藏
得分:0 
以下是引用Joforn在2007-8-2 10:58:00的发言:

因为在KeyPress事件激活时,文本框还没有把KeyAscii所代表的字符输出,但你在代码中使用了Text1.Text = String(2, KeyAscii),也就是说文本框在自动将你输入的字符“A”显示前已经被修改成“AA”,当KeyPress事件结束后,由于KeyAscii变量返回了一个“A”,所以文本框自动在“AA”后添加一个字符“A”,也就成了“AAA”了。

你的说法不完全正确,我刚刚试了试,我输入的字符在前面,后面俩个是string语句显示出来的。

2007-08-02 12:57
水无波
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-8-2
收藏
得分:0 
以下是引用slore在2007-8-2 11:00:17的发言:
Private Sub Text1_KeyPress(KeyAscii As Integer)
KeyAscii = 65
Text1 = String(2, "*")
End Sub

你看看。。。。你输入的是在End Sub后才显示的……本身你按下后出现的是**,然后这个过程结束后才出现你KeyAscii

我试了试,我按a,输出是A**, 光标在A后面闪,不是在**后面闪。 请麻烦您也试试自己的方法,帮忙给我个更好的解释好么?

2007-08-02 13:02
水无波
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-8-2
收藏
得分:0 
以下是引用slore在2007-8-2 13:00:34的发言:
在什么位置由焦点决定,你按的时候应该是在开头!

至于是A不是string函数,而且前面另KeyAscii = Asc(UCase(str))……

似乎又懂了。。。。。
我按下的时候是焦点在文本框的最前面;string语句后,文本框的内容为2个**,同时输出在屏幕上,end语句后把我按下的字母也输出到屏幕上,因为焦点在最前,所以最后这个A输出在2个**前面,光标也在紧挨A后闪,是吧?到这时候,事件结束,我才看到屏幕的结果,是A**, 这样解释比较合理了。。。应该是对的吧!
谢谢大家!

2007-08-02 13:10
水无波
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-8-2
收藏
得分:0 
以下是引用slore在2007-8-3 10:12:53的发言:

更明白点……

谢谢你拉!
2007-08-03 22:45
快速回复:[讨论][求助]该输出几个A?(已解决,谢谢大家)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033637 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved