VB6 多个同类控件的相同事件,代码如何重用?

VisualBasic6.0怎么样实现同类控件相同事件,代码的重用呢?比如有三个TextBox:Text1,Text2,Text3.PrivateSubText1_Got... Visual Basic 6.0
怎么样实现同类控件相同事件,代码的重用呢?
比如有三个TextBox: Text1,Text2,Text3.
Private Sub Text1_GotFocus()
Text1.alignment=0
End Sub
Private Sub Text2_GotFocus()
Text2.alignment=0
End Sub
Private Sub Text3_GotFocus()
Text3.alignment=0
End Sub
怎么才能只写一次,而不必每一次都重写呢?
因为我需要写上百个相同的控件。。。不重用,全篇代码就没法看了。
感谢高手,请附代码。 通过的话一定加分!
不好意思。
不可以用数组的办法。
因为它们的用途不同。
如果用数组,那么再当调用他们时,就麻烦死了。。。

必须用不同的名字。谢谢各位了~
-----------------------------
我对自定义控件很感兴趣。
能帮忙写一下怎么弄吗?
我先加50分,写好了再加50一起给你
展开
 我来答
katar1024
2008-10-23 · TA获得超过942个赞
知道小有建树答主
回答量:511
采纳率:0%
帮助的人:530万
展开全部
你的意思是说这些文本框的用途不一样,每一个都不能同时设置alignment对吧,
看看我的方法行不?
其实可以用控件数组的,textbox有一个tag属性,你在不同用途的textbox写上不一样的tag值.到时根据选择tag值来相应的操作

比如你定义所有tag=1的文本框在GotFotus时,Alignmeng=0
定义所有tag=2的文本框在GotFotus时,Alignmeng=1
定义所有tag=3的文本框在GotFotus时,Alignmeng=2
定义所有tag=4的文本框在GotFotus时,全选
……

那么你可以这样写

Private Sub Text1_GotFocus(Index As Integer)
Select Case Text1(Index).Tag
Case 1: Text1(Index).Alignment = 0
Case 2: Text1(Index).Alignment = 1
Case 3: Text1(Index).Alignment = 2
Case 4:
Text1(Index).SelStart = 0
Text1(Index).SelLength = Len(Text1(Index))
Case Else
End Select
End Sub

觉得好就再加点分吧,谢谢!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ljl88900
2008-10-23 · TA获得超过2661个赞
知道大有可为答主
回答量:2197
采纳率:100%
帮助的人:2630万
展开全部
根据你的补充,可以把相同代码放入一个通用过程中,然后在用到它时简单调用即可(当然,你举的例子重复的代码不长,如果很长,本做法就显示出明显的优势):

'通用过程
Sub align(objectName As Object)
Call CallByName(objectName, "alignment", VbLet, 1)
End Sub

Private Sub Text1_GotFocus(Index As Integer)
align text1
End Sub

Private Sub Text2_GotFocus(Index As Integer)
align text2
End Sub
。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
43295811
2008-10-23 · TA获得超过1529个赞
知道大有可为答主
回答量:1701
采纳率:0%
帮助的人:2045万
展开全部
添加一个timer,设置其interval=10,复制以下代码:
Private Sub Timer1_Timer()
If TypeOf Me.ActiveControl Is TextBox Then Me.ActiveControl.Alignment = 0
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
q36193899
2008-10-23 · 超过21用户采纳过TA的回答
知道答主
回答量:69
采纳率:0%
帮助的人:0
展开全部
最好用数组控件,text11(0),text11(1),text11(2),这样就可以了
当然,也可以写个子程序,调用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ickaka
2008-10-23 · TA获得超过323个赞
知道小有建树答主
回答量:358
采纳率:0%
帮助的人:0
展开全部
用数组控件,text1(0),text1(1),text1(2)....比如有三个textbox的话,代码这么写,
Private Sub Text1_GotFocus(Index As Integer)
For i = 0 To 2
If i = Index Then
Text1(i).Alignment = 0
End If
Next i
End Sub
如果有100个textbox那么就改For i = 0 To 2为For i = 0 To 99.首先你要知道数组控件怎么用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式