VB6中如何让很多独立文本框中的某一个获得焦点时选中其全部内容
寻求帮助:窗体中有很多独立文本框控件,按照TabIndex的顺序逐个选择,希望在选择其中每一个文本框控件时(该文本框获得焦点),选中该文本框中全部内容。
已经试过的方法:1) Form_KeyUp(KeyCode As Integer, Shift As Integer),失败,按Tab是不会触发KeyUp事件 2) Private Sub Text2_GotFocus() Text2.SelStart = 0 Text2.SelLength = Len(Text2.Text) End Sub 因为文本框控件很多,希望能用子程序得到想要的结果,而不是对每一个文本框控件都加上这一段代码
一个解决方法就是利用控件数组。也就是将头一个文本框的 Index 属性填入 0。然后将其他的文本框改为与它同名,使 Index 递增。或者将其他文本框都删除,然后复制第一个,粘贴、粘贴……
建立一个类模块,模块名clsText 代码: Public WithEvents oText As TextBox Private Sub oText_GotFocus() oText.SelStart = 0 oText.SelLength = Len(oText.Text) End Sub ------------------------------------------------------ 在主窗体代码写这么几句: Dim o() As clsText
Private Sub Form_Load() Dim x As Object Dim n As Long For Each x In Me.Controls If TypeOf x Is TextBox Then ReDim Preserve o(0 To n) As clsText Set o(n) = New clsText Set o(n).oText = x n = n + 1 End If Next End Sub ---------------------------------------------- 这就行了。
这个办法不知能处理楼主说的选定文本的问题。 如果好好写一下类模块的代码,还可以把窗体所有的文本框的数据格式统一到同一个地方做格式检查
|