+ Reply to Thread
Results 1 to 3 of 3

Focus In Modeless Form (spare me the grief)

  1. #1
    ThinkImInTrouble
    Guest

    Focus In Modeless Form (spare me the grief)


    I hope someone out there can help me.
    I have a modeless Form. It has 1 label and one textbox.
    on exit of the textbox(by user hitting enter) It looses it focus to
    Excel. However When I give focus back to the userform by
    AppActivate(userform1.caption) Textbox1 has the focus, However there
    is no cursor indication and I can not overwrite what is currently in
    the field, it only appears to allow me to backspace over the previous
    entry. Here is the code I am using :

    Module 1 -- code:
    Sub ShowUserForm()
    If UserForm1.Visible = True Then
    AppActivate (UserForm1.Caption)
    Else
    UserForm1.Show (vbModeless)
    End If
    End Sub

    UserForm1 -- code:
    Private Sub TextBox1_Enter()
    Me.TextBox1.BackColor = &HFFFF&
    End Sub

    Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Cancel = True
    Me.TextBox1.BackColor = &H80000005
    AppActivate ("Microsoft excel")
    End Sub

    Private Sub UserForm_Activate()
    Me.TextBox1.SetFocus
    End Sub

    *** note Ive had a little bit of success with the userform_click event
    and adding a second text box, But I dont want the user to click on the
    body of the userform to set the focus.

    PLEASE PLEASE HELP!!!


    --
    ThinkImInTroublePosted from http://www.pcreview.co.uk/ newsgroup access


  2. #2
    okaizawa
    Guest

    Re: Focus In Modeless Form (spare me the grief)

    Hi,

    Control's focus is effective only in its container object.
    Even if a userform loses focus, active-control keeps focus
    while its container(userform) is alive, so 2nd 'enter' is not raised.

    I might have misunderstood what you mean, but made some code:

    'exsample-1 (Excel 2000)
    'assuming that UserForm1 has a commandbutton.

    'Standard module
    Sub ShowUserForm()
    If UserForm1.Visible Then
    UserForm1.Show vbModeless
    UserForm1.Tag = "ResetFocus"
    UserForm1.CommandButton1.SetFocus
    UserForm1.Tag = ""
    UserForm1.TextBox1.SetFocus
    Else
    UserForm1.Show vbModeless
    UserForm1.TextBox1.SetFocus
    End If
    End Sub

    'UserForm1
    Private Sub TextBox1_Enter()
    Me.TextBox1.BackColor = &HFFFF&
    End Sub

    Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If Me.Tag = "" Then
    Cancel = True
    Me.TextBox1.BackColor = &H80000005
    AppActivate Application.Caption
    End If
    End Sub


    'exsample-2

    'Standard module
    Sub ShowUserForm()
    UserForm1.Show vbModeless
    With UserForm1.TextBox1
    .BackColor = &HFFFF&
    .Visible = False
    .Visible = True
    .SetFocus
    End With
    End Sub

    'UserForm1
    Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Cancel = True
    Me.TextBox1.BackColor = &H80000005
    AppActivate Application.Caption
    End Sub

    --
    HTH,
    okaizawa

    ThinkImInTrouble wrote:
    > I hope someone out there can help me.
    > I have a modeless Form. It has 1 label and one textbox.
    > on exit of the textbox(by user hitting enter) It looses it focus to
    > Excel. However When I give focus back to the userform by
    > AppActivate(userform1.caption) Textbox1 has the focus, However there
    > is no cursor indication and I can not overwrite what is currently in
    > the field, it only appears to allow me to backspace over the previous
    > entry. Here is the code I am using :
    >
    > Module 1 -- code:
    > Sub ShowUserForm()
    > If UserForm1.Visible = True Then
    > AppActivate (UserForm1.Caption)
    > Else
    > UserForm1.Show (vbModeless)
    > End If
    > End Sub
    >
    > UserForm1 -- code:
    > Private Sub TextBox1_Enter()
    > Me.TextBox1.BackColor = &HFFFF&
    > End Sub
    >
    > Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    > Cancel = True
    > Me.TextBox1.BackColor = &H80000005
    > AppActivate ("Microsoft excel")
    > End Sub
    >
    > Private Sub UserForm_Activate()
    > Me.TextBox1.SetFocus
    > End Sub
    >


  3. #3
    ThinkImInTrouble
    Guest

    Re: Focus In Modeless Form (spare me the grief)


    Thanks okaizawa, I had a feeling it was due to the control keeping its
    focus. I just wasnt sure how to code it to reinitiliaze The Textbox
    control. I Love The second example you gave.

    Thank you again you saved me Many Sleepless nights.


    --
    ThinkImInTroublePosted from http://www.pcreview.co.uk/ newsgroup access


+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1