Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Impostazione Focus di figli su MDIForm in VB6 e VB.NET 2005

    All'apertura di un Form figlio in VB6, per impostare il focus sul form che andavo ad aprire (anche se già aperto) mi bastava semplicemente:

    NomeForm.Show
    NomeForm.SetFocus

    ed eventualmente forzo il posizionamento in alto a sinistra ...

    Me.Top = 0
    Me.Left = 0

    In VB.2005 cambia leggermente la sintassi ..

    NomeForm.MdiParent = Me
    NomeForm.Show()
    NomeForm.Focus()

    Me.Top = 0
    Me.Left = 0

    Non so per quale motivo però, l'istruzione non funziona.... (ne' il focus, tantomeno il posizionamento)

    Grazie
    Marco

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    A me funziona senza problemi, e non uso nemmeno il metodo Focus (che non serve).

    Non è che hai qualche routine che esegue del codice dopo aver aperto il form ?
    Non c'è altra spiegazione...

    Ciao :

  3. #3
    Nulla. l'ultima riga che esegue è proprio il posizionamento in alto a destra.

    Sembra strano pure a me. Su un altro applicativo, con il medesimo codice in apertura form, funziona regolarmente. Pensavo fosse qualche proprietà del form o altro da specificare....

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da gemepaso
    Nulla. l'ultima riga che esegue è proprio il posizionamento in alto a destra.

    Sembra strano pure a me. Su un altro applicativo, con il medesimo codice in apertura form, funziona regolarmente. Pensavo fosse qualche proprietà del form o altro da specificare....
    Spero che le istruzioni:
    codice:
    Me.Top = 0
    Me.Left = 0
    Siano all'interno del Load del form ...

    Ciao

  5. #5
    certo.. come anche il nomeForm.Focus()

    Naturalmente c'è il controllo sul fatto che il form sia già aperto..

    If VerificaFormAperto(nomeForm) = False Then

    nomeForm.MdiParent = Me
    nomeForm.Show()
    nomeForm.focus()
    nomeForm.Top = 0
    nomeForm.Left = 0

    Else

    returnObj.focus()
    returnObj.Top = 0
    returnObj.Left = 0

    End If


    'con:

    Public Function VerificaFormAperto(ByVal nomeForm As String) As Boolean

    Dim f As Form
    For Each f In Application.OpenForms
    If f.Name = nomeForm Then
    Return True

    End If
    Next
    Return False

    End Function

  6. #6
    ops ... intendevo...

    If VerificaFormAperto(nomeForm) = False Then

    nomeForm.MdiParent = Me
    nomeForm.Show()
    nomeForm.focus()
    nomeForm.Top = 0
    nomeForm.Left = 0

    Else

    nomeForm.focus()
    nomeForm.Top = 0
    nomeForm.Left = 0

    End If


    'con:

    Public Function VerificaFormAperto(ByVal nomeForm As String) As Boolean

    Dim f As Form
    For Each f In Application.OpenForms
    If f.Name = nomeForm Then
    Return True

    End If
    Next
    Return False

    End Function

  7. #7
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Non vorrei costernarti più di quanto tu non lo sia già...

    Ho provato il tuo codice, e a me funziona benissimo.
    Non so cosa dirti...

    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.