Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    [VB6] il metodo Show non visualizza la finestra richiesta

    Ciao a tutti!

    Sto realizzando un'applicazione VB in cui la prima schermata è un MDI form che contiene un form iniziale che ha al suo interno una serie di bottoni che richiamano altre form.

    Il problema è il seguente: supponiamo che stia lavorando una finestra "non iniziale", e che voglia tornare a quella iniziale senza chiudere quella su cui lavoro. Nonostante abbia messo il metodo Show al clic del menu del form MDI per richiamare la visualizzazione del form principale, questo rimane in secondo piano a scapito del form "non iniziale". Posto di seguito il codice VB dell'MDI form per chiarire la situazione.

    **************************************************
    Private Sub SubMnuDocumentiView_Click(Index As Integer)
    FrmDoc.Show
    End Sub

    Private Sub SubMnuGenExit_Click(Index As Integer)
    Dim Answer As Integer
    Answer = MsgBox("Sei sicuro di voler uscire?", vbYesNo, "Esci")
    If Answer = 6 Then
    Unload MFrmMain
    End If
    End Sub

    Private Sub SubMnuGenView_Click(Index As Integer)
    FrmMain.Show
    End Sub

    ************************************************** *

    Il discorso è: se io lavoro il FrmDoc e clicco SubMnuGenView, sembra che non voglia eseguirmi quello che c'è al suo interno!

    Come fare?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    FrmDoc.Show vbModeless

  3. #3

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Spiega un po' meglio in quale relazione stanno i vari form ...

  5. #5
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    Prova ad aggiungere prima
    load mioform
    mioform.show

    Altrimenti metti un interrupt su quella zona di codice e vedi se effettivamente quel pezzetto viene eseguito.
    Piccolo consiglio

    codice:
    Dim Answer As Integer
    Answer = MsgBox("Sei sicuro di voler uscire?", vbYesNo, "Esci")
    If Answer = 6 Then
    Può essere riscritto in modo piu' facile in questo modo

    codice:
    Dim Risposta as VbMsgBoxResult
    Risposta = MsgBox("Sei sicuro di voler uscire?", vbYesNo, "Esci")
    If Risposta = VbNo 'Ti apparirà il menu guidato e potrai fare le tue azioni
    In quel modo quando farai
    If Risposta =
    ti appare il menu guidato con tutte le possibili scelte del msgbox. Utile per non usare i numeri

  6. #6
    Originariamente inviato da oregon
    Spiega un po' meglio in quale relazione stanno i vari form ...
    Allora:

    -i form sono tutti MDI Child e formalmente equivalenti. FrmMain è il form che compare dentro l'MDI quando avvio la mia applicazione.

    Il punto è: se richiamo un altro form dal menu dell'MDI Form(supponi: FrmDoc) me lo visualizza in primo piano, ma una volta che questo è visualizzato, se voglio tornare a FrmMain non mi visualizza questa finestra in primo piano...

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ah ... forse ti riferisci ad un vecchio (mai corretto) bug ...

    Allora devi sostituire il metodo Show con il metodo ZOrder, ovvero al posto di FrmMain.Show devi scrivere FrmMain.ZOrder e cosi' per gli altri form.

  8. #8
    Originariamente inviato da oregon
    Ah ... forse ti riferisci ad un vecchio (mai corretto) bug ...

    Allora devi sostituire il metodo Show con il metodo ZOrder, ovvero al posto di FrmMain.Show devi scrivere FrmMain.ZOrder e cosi' per gli altri form.
    Peggio che mai, con ZOrder non mi fa neppure comparire il Form...

  9. #9
    Originariamente inviato da XWolverineX
    Prova ad aggiungere prima
    load mioform
    mioform.show

    Altrimenti metti un interrupt su quella zona di codice e vedi se effettivamente quel pezzetto viene eseguito.
    Piccolo consiglio

    codice:
    Dim Answer As Integer
    Answer = MsgBox("Sei sicuro di voler uscire?", vbYesNo, "Esci")
    If Answer = 6 Then
    Può essere riscritto in modo piu' facile in questo modo

    codice:
    Dim Risposta as VbMsgBoxResult
    Risposta = MsgBox("Sei sicuro di voler uscire?", vbYesNo, "Esci")
    If Risposta = VbNo 'Ti apparirà il menu guidato e potrai fare le tue azioni
    In quel modo quando farai
    If Risposta =
    ti appare il menu guidato con tutte le possibili scelte del msgbox. Utile per non usare i numeri
    Anche questa soluzione non ha sortito effetti...

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da eroedelsilenzio
    Peggio che mai, con ZOrder non mi fa neppure comparire il Form...
    Ma che dici?

    A me funziona regolarmente ....

    A questo punto penso ci sia qualche incomprensione ... ricapitoliamo

    1) Hai delle voci di menu nel form MDI

    2) Le varie voci visualizzano un determinato form child

    3) Nel codice del menu utilizzi una istruzione come FrmDoc.ZOrder (per i vari form)

    e' questo il codice? Se e' cosi' ... a me funziona regolarmente...

    Posta *tutto* il codice ...

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.