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

    [VB] aprire un form in primo piano

    Ciao a tutti forumisti!

    Vorrei appunto aprire un form in primo piano!
    In altre parole, se l' utente sta utilizzando altri programmi, o sta navignado ad esempio nel web avrà certamente davanti a se delle finestre.
    Vorrei che il mio form stia difronte a tutte le finestre aperte quando scatta il comando show!

    Non credo sia molto difficile, cmq è estremamente utile ed importante!

    Grazie anticipatamente e... ciao a tutti!
    jabjoint

  2. #2
    non è cosi' semplice come credevo...
    jabjoint

  3. #3
    Attraverso le API c'è il modo di far rimanere una finestra sempre in primo piano:

    codice:
    Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
    
    Const HWND_TOPMOST = -1
    Const HWND_NOTTOPMOST = -2
    Const SWP_NOSIZE = 1
    Const SWP_NOMOVE = 2
    
    
    Public Sub AlwaysOnTop(myfrm As Form, SetOnTop As Boolean)
        If SetOnTop Then
        lFlag = HWND_TOPMOST
    Else
        lFlag = HWND_NOTOPMOST
    End If
    SetWindowPos myfrm.hwnd, lFlag, myfrm.Left / Screen.TwipsPerPixelX, myfrm.Top / Screen.TwipsPerPixelY, myfrm.Width / Screen.TwipsPerPixelX, myfrm.Height / Screen.TwipsPerPixelY, SWP_NOACTIVATE Or SWP_SHOWWINDOW
    End Sub
    Per mettere Form1 in primo piano:
    codice:
    AlwaysOnTop(Form1, True)
    Per toglierla dal primo piano:
    codice:
    AlwaysOnTop(Form1, False)

  4. #4
    grazie mille proprio quello che mi serviva!
    jabjoint

  5. #5

  6. #6
    Ciao,
    anche io sono interessato a questa cosa...ho provato ad inserire il tuo codice in una mia applicazione ma ecco cosa mi restituisce quando eseguisco la funzione (vedi allegato).

  7. #7
    prova a sostituire
    codice:
    AlwaysOnTop(Form1, True)
    'e
    AlwaysOnTop(Form1, False)
    con

    codice:
    AlwaysOnTop Form1, True
    'e
    AlwaysOnTop Form1, False
    Se è li che ti segnala l'errore, altrimenti facci sapere dove ti da l'errore, sarà più facile aiutarti

  8. #8
    No, ehm lasciamo stare che è meglio...sono nuovo del VB e ho fatto una fagianata assurda: non ho messo call nel richiamo di funzione!

    Scusate x il distrbo,

  9. #9

    problema

    ho provato a copiare pari pari l'esempio e anche a me da un errore di mancanza dell'= ma vorrei sapere dove metto tutto il codice in un form e basta o in un modulo ed un form se si quale nel form scusate ma sono nuovo e non so ancora come girarmi in vb grazie

  10. #10
    Nel form devi mettere solo il richiamo d funzione, il resto va nel modulo.

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.