将遮罩应用于控件时......
Me.item_name.InputMask = ">!CCCCCCCCCCCCCCCCCCC"
并且用户在该控件中单击光标是他们单击的位置,而不是在开头。
Me.item_name.SelStart = 0
解决了这个问题。我试图通过所有控件循环。
For Each ctl In Me.Controls
ctl.SelStart = 0
Next ctl
呀......没有工作。
我也试过......
For Each Ctl In Me.Controls
Select Case Ctl.ControlType
Case acTextBox
Debug.Print Ctl.Name
Ctl.SelStart = 0
Case Else
'nothing to do
End Select
Next
在Ctl.SelStart = 0
上获取运行时错误2185答案 0 :(得分:2)
对于没有.SelStart
属性的任何控件(例如CommandButtons),这将失败。
控件的.Properties
集合会告诉您它是否具有.SelStart
属性,即
Sub ResetControls(f As Form)
Dim c As Control
For Each c In f.Controls
Dim p As Property
For Each p In c.Properties
If p.Name = "SelStart" Then
c.SelStart = 0
End If
Next p
Next c
End Sub
答案 1 :(得分:0)
您还可以使用文本控件的OnGotFocus
事件(当用户单击或标记到控件中时发生),并在其中设置SelStart
。缺点是您需要为每个控件编写事件,因此您无法在循环中执行此操作。优点是它非常简单,如果需要,您可以为特定控件添加其他功能(例如从另一个控件的内容更新)。