| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 437 人关注过本帖
标题:[求助]获取焦点问题
取消只看楼主 加入收藏
桃源书生
Rank: 1
等 级:新手上路
帖 子:99
专家分:3
注 册:2006-7-3
结帖率:33.33%
收藏
 问题点数:0 回复次数:2 
[求助]获取焦点问题
我打算编写这样一个程序:
界面如下图所示,其中r为圆半径,L为圆周长,S为圆面积。当我在三个文本框中任意选中一个并输入数字后,另外的两个文本框给出相应的结果。
图片附件: 游客没有浏览图片的权限,请 登录注册

程序代码如下,比较复杂,应该如何简化?是不是可以应用焦点?谢谢!
Private Sub Command1_Click()
Dim r As Single, L As Single, S As Single, pi As Single
pi = 3.14159
If Text1.Text <> "" Then
r = Val(Text1.Text)
L = 2 * pi * r
S = pi * r * r
Text2.Text = Str(L)
Text3.Text = Str(S)
ElseIf Text2.Text <> "" Then
L = Val(Text2.Text)
r = L / 2 / pi
S = pi * r * r
Text1.Text = Str(r)
Text3.Text = Str(S)
ElseIf Text3.Text <> "" Then
S = Val(Text3.Text)
r = Sqr(S / pi)
L = 2 * pi * r
Text1.Text = Str(r)
Text2.Text = Str(L)
End If
End Sub
搜索更多相关主题的帖子: 获取 焦点 
2006-11-07 09:51
桃源书生
Rank: 1
等 级:新手上路
帖 子:99
专家分:3
注 册:2006-7-3
收藏
得分:0 

用控件数组是不是这样写:
Private Sub Text1_Change(Index As Integer)
Dim r As Single, L As Single, S As Single, pi As Single
pi = 3.14159
Select Case Index
Case 0
r = Val(Text1(0).Text)
L = 2 * pi * r
S = pi * r * r
Case 1
L = Val(Text1(1).Text)
r = L / 2 / pi
S = pi * r * r
Case 2
S = Val(Text1(2).Text)
r = Sqr(S / pi)
L = 2 * pi * r

End Select
Text1(0).Text = r
Text1(1).Text = L
Text1(2).Text = S
End Sub

不过这段代码还是有些长了。如果有十个文本框的话,在对每个文本框进行判断后都要对其余九个文本档进行相应的计算,写起来就太长了。不知道能不能利用循环来简化程序?谢谢!

2006-11-07 12:51
桃源书生
Rank: 1
等 级:新手上路
帖 子:99
专家分:3
注 册:2006-7-3
收藏
得分:0 
以下是引用purana在2006-11-7 13:04:52的发言:
嗯 ..当然可以的.
for i = 1 to 10
if (text1(i).text<> "" ) then
'//做你想做的事.
end if
next

版主呀,我就是不知道then后面应该怎样写?就你本贴为例吧,一共有三个文本框,分别是圆的半径、周长和面积。我想实现这样的目的:在这三个文本框中的任意一个内输入一个数字,另外两个文本框相应做出显示。谢谢!

2006-11-07 15:29
快速回复:[求助]获取焦点问题
数据加载中...
 
   



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

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