[Gambas-user] SetFocus to next MaskBox in a Group
John Rose
john.aaron.rose at ...626...
Thu Feb 12 14:41:34 CET 2015
Tobias,
Thanks. I've used your second method. It's so easy when you know how!
John
On 12/02/15 13:12, Tobias Boege wrote:
> On Thu, 12 Feb 2015, John Rose wrote:
>> I have a set of MaskBoxes (each with Group Cyphered & with MaxLength of
>> 1) with Names of CypheredMaskBox1, CypheredMaskBox2, CypheredMaskBox3
>> etc. CypheredMaskBox1 has Tag of 1, CypheredMaskBox2 has Tag of 2 etc.
>> In my Cyphered_Change event, I do validation of a user-entered character
>> but want to SetFocus to the next (i.e. with Tag of 1 greater than
>> current Tag) in case of successful validation. How do I do this (ideally
>> by extending the code fragment below)?
>>
>> Code fragment:
>> Dim iNextTag As Integer
>> Dim strNextTag As String
>> Dim strNextCyphered As String
>> iNextTag = CInt(Last.Tag) + 1
>> strNextTag = CStr(iNextTag)
>> strNextCyphered = "CypheredMaskBox" & strNextTag
>>
> You can adapt this... I would almost call it a paradigma or a way of life:
>
> Private Sub Discover(h As Container)
> Dim g As Control
> For Each g In h
> Print g ' (*)
> If g Is Container Then Discover(g)
> Next
> End
>
> It recursively discovers all controls on a form where at (*) you can do
> whatever you want with a single control g, like checking whether it's a
> MaskBox and what its Tag is.
>
> Since you are searching MaskBoxes over an entire Form -- I assume; and this
> assumption is critical here -- and have your MaskBoxes named nicely, you can
> more comfortably use FForm.Controls (assuming your form's name is FForm):
>
> Dim hNextMaskBox As MaskBox
>
> ' your code fragment here
> hNextMaskBox = FForm.Controls[strNextCyphered]
> hNextMaskBox.SetFocus()
>
> If you must constrain your search to a non-Form container, you must resort
> to a variant of Discover(). If you additionally have embedded forms in the
> container you want to discover, things will get a little uglier but no need
> to discuss that if all you want is FForm.Controls.
>
> Regards,
> Tobi
>
More information about the User
mailing list