1.
Dim objControl As Control
For Each objControl In Me.Controls
If objControl.Container.Name = \"Frame1\" Then
Debug.Print objControl.Name
End If
Next
2.
Public Sub OperateFrame(ByRef objFrame As VB.Frame, ByVal intOperation As Integer)
’\\\\***********************************************************************
’\\\\函 數(shù) 名:OperateFrameTextBox
’\\\\輸 入: ByRef objFrame(VB.Frame) -
’\\\\ : ByVal intOperation(Integer)
’\\\\ 1: 表示清空TextBox,
’\\\\ 2: 表示Enable所有TextBox
’\\\\輸 出:無
’\\\\功能描述:對(duì)一個(gè)Frame內(nèi)的TextBox或者ComboBox進(jìn)行操作,如清空TextBox,Enable或者Disable等
’\\\\全局變量:
’\\\\使用例子:Call OperateFrame(Me.Frame2, 3)
’\\\\日 期:2004-09-22
’\\\\修 改 人:
’\\\\日 期:
’\\\\版 本:V1.0.0
’*************************************************************************
Dim objControl As Control
Dim TopForm As VB.Form
On Error GoTo ErrHandle
Set TopForm = GetTopContainer(objFrame)
For Each objControl In TopForm.Controls
Select Case intOperation
Case 1
’\\\\ 1 表示清空frame內(nèi)所有TextBox
If (objControl.Container.Name = objFrame.Name) And (TypeName(objControl) = \"TextBox\") Then
objControl.Text = \"\"
End If
Case 2
’\\\\ 2 表示Enable所有frame內(nèi)的TextBox
If (objControl.Container.Name = objFrame.Name) And (TypeName(objControl) = \"TextBox\") Then
objControl.Enabled = True
End If
Case 3
’\\\\ 2 表示Enable所有frame內(nèi)的TextBox
If (objControl.Container.Name = objFrame.Name) And (TypeName(objControl) = \"TextBox\") Then
objControl.Enabled = False
End If
Case Else
End Select
Next
ErrHandle:
If Err.Number <> 0 Then
MsgBox Err.Description, vbCritical, \"提示\"
Err.Clear
End If
End Sub
Public Function GetTopContainer(ByRef objCtl As Control) As Object
’\\\\***********************************************************************
’\\\\函 數(shù) 名:GetTopContainer
’\\\\輸 入:ByRef objCtl(Object)
’\\\\輸 出:(Object)
’\\\\功能描述:獲得某控件的頂層容器
’\\\\使用例子:Set TopForm = GetTopContainer(objFrame)
’\\\\全局變量:
’\\\\日 期:2004-09-22
’\\\\修 改 人:
’\\\\日 期:
’\\\\版 本:V1.0.0
’*************************************************************************
Dim objContainer As Object
Dim objMe As Object
Dim i As Integer
i = 1
On Error GoTo ErrHandle
’\\\\一層層向上獲得Container,直到一層(為Form對(duì)象)
’\\\\這時(shí)候由于不存在Container對(duì)象,會(huì)誘發(fā)錯(cuò)誤438(對(duì)象不支持該屬性或方法)
Set objMe = objCtl
Do Until 1 = 2
If i > 2 Then
Set objMe = objContainer
End If
Set objContainer = objMe.Container
i = i + 1
If i > 100 Then
’\\\\當(dāng)循環(huán)超過100次,應(yīng)該是存在錯(cuò)誤了
MsgBox \"異常情況??!\", vbCritical, \"提示\"
Exit Function
End If
DoEvents
Loop
ErrHandle:
If Err.Number <> 0 Then
If Err.Number = 438 Then
Set GetTopContainer = objMe
Else
MsgBox Err.Description, vbCritical, \"提示\"
End If
End If
End Function
Dim objControl As Control
For Each objControl In Me.Controls
If objControl.Container.Name = \"Frame1\" Then
Debug.Print objControl.Name
End If
Next
2.
Public Sub OperateFrame(ByRef objFrame As VB.Frame, ByVal intOperation As Integer)
’\\\\***********************************************************************
’\\\\函 數(shù) 名:OperateFrameTextBox
’\\\\輸 入: ByRef objFrame(VB.Frame) -
’\\\\ : ByVal intOperation(Integer)
’\\\\ 1: 表示清空TextBox,
’\\\\ 2: 表示Enable所有TextBox
’\\\\輸 出:無
’\\\\功能描述:對(duì)一個(gè)Frame內(nèi)的TextBox或者ComboBox進(jìn)行操作,如清空TextBox,Enable或者Disable等
’\\\\全局變量:
’\\\\使用例子:Call OperateFrame(Me.Frame2, 3)
’\\\\日 期:2004-09-22
’\\\\修 改 人:
’\\\\日 期:
’\\\\版 本:V1.0.0
’*************************************************************************
Dim objControl As Control
Dim TopForm As VB.Form
On Error GoTo ErrHandle
Set TopForm = GetTopContainer(objFrame)
For Each objControl In TopForm.Controls
Select Case intOperation
Case 1
’\\\\ 1 表示清空frame內(nèi)所有TextBox
If (objControl.Container.Name = objFrame.Name) And (TypeName(objControl) = \"TextBox\") Then
objControl.Text = \"\"
End If
Case 2
’\\\\ 2 表示Enable所有frame內(nèi)的TextBox
If (objControl.Container.Name = objFrame.Name) And (TypeName(objControl) = \"TextBox\") Then
objControl.Enabled = True
End If
Case 3
’\\\\ 2 表示Enable所有frame內(nèi)的TextBox
If (objControl.Container.Name = objFrame.Name) And (TypeName(objControl) = \"TextBox\") Then
objControl.Enabled = False
End If
Case Else
End Select
Next
ErrHandle:
If Err.Number <> 0 Then
MsgBox Err.Description, vbCritical, \"提示\"
Err.Clear
End If
End Sub
Public Function GetTopContainer(ByRef objCtl As Control) As Object
’\\\\***********************************************************************
’\\\\函 數(shù) 名:GetTopContainer
’\\\\輸 入:ByRef objCtl(Object)
’\\\\輸 出:(Object)
’\\\\功能描述:獲得某控件的頂層容器
’\\\\使用例子:Set TopForm = GetTopContainer(objFrame)
’\\\\全局變量:
’\\\\日 期:2004-09-22
’\\\\修 改 人:
’\\\\日 期:
’\\\\版 本:V1.0.0
’*************************************************************************
Dim objContainer As Object
Dim objMe As Object
Dim i As Integer
i = 1
On Error GoTo ErrHandle
’\\\\一層層向上獲得Container,直到一層(為Form對(duì)象)
’\\\\這時(shí)候由于不存在Container對(duì)象,會(huì)誘發(fā)錯(cuò)誤438(對(duì)象不支持該屬性或方法)
Set objMe = objCtl
Do Until 1 = 2
If i > 2 Then
Set objMe = objContainer
End If
Set objContainer = objMe.Container
i = i + 1
If i > 100 Then
’\\\\當(dāng)循環(huán)超過100次,應(yīng)該是存在錯(cuò)誤了
MsgBox \"異常情況??!\", vbCritical, \"提示\"
Exit Function
End If
DoEvents
Loop
ErrHandle:
If Err.Number <> 0 Then
If Err.Number = 438 Then
Set GetTopContainer = objMe
Else
MsgBox Err.Description, vbCritical, \"提示\"
End If
End If
End Function