热情软件屋

 

如何使多个控件具有相同的事件过程


编号:QA001346
建立日期: 1999年7月15日 最后修改日期:1999年7月15日
所属类别:

Alan21:
    我使用PWIN98,PVB6.0,有如下问题请教:
    能否用较少的语句实现:对窗体内的TEXTBOX控件在得到焦点时字体为红色,失去焦点时字体为黑色(假设窗体内的TEXTBOX很多,逐个向其事件中写代码较麻烦)多谢!

回答:

    其实你可以使用控件数组实现,这样你只需要写一次事件代码就可以了。
    如果由于某种原因你无法使用控件数组,你可以使用下面的办法:
    先增加一个类模块(Class1)
    Option Explicit
    

    
Public WithEvents txt As TextBox
    

    
Public Property Set TextBoxCtl(OutsideTextBox As TextBox)
    
Set txt = OutsideTextBox
    
End Property
    

    
Private Sub txt_GotFocus()
    
txt.ForeColor = vbRed
    
End Sub
    

    
Private Sub txt_LostFocus()
    
txt.ForeColor = vbBlack
    
End Sub
    
然后在Form中输入以下代码:
    
Dim clsTextBox() As Class1
    

    
Private Sub Form_Load()
    
Dim i, j
    

    
j = 1
    
For i = 0 To Controls.Count - 1
    
If TypeOf Controls(i) Is TextBox Then
    
ReDim Preserve clsTextBox(j) As Class1
    
Set clsTextBox(j) = New Class1
    
Set clsTextBox(j).TextBoxCtl = Controls(i)
    
j = j + 1
    
End If
    
Next
    
End Sub

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio