HTML.it è il sito italiano del web publishing

VB.NET - Treeview e apertura form



scegli un altro forum
    Indietro   Ricarica   Avanti Invia una risposta

Autore
Discussione     
androita
Utente di HTML.it



Registrato il: Nov 2007

Provenienza:

Messaggi: 356


ICQ:

MSN:

Skype:


VB.NET - Treeview e apertura form
Ciao a tutti!

Ho un form1 dove all'interno ho un treeview.

Nella proprietà Afterselect del treview ho un select case, che in base al nodo selezionato esegue alcune procedure, in un nodo dovrebbe aprire il form2.

codice:
 Private Sub TreeView1_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect


        Select Case (e.Node.Name)

            Case "Nodo1"
                TabControl2.TabPages.Clear()
                TabControl2.TabPages.Add(TabPage1)


            Case "Nodo33"
                TabControl2.TabPages.Clear()
                TabControl2.TabPages.Add(TabPage3)

            Case "Nodo34"

                Form2.Show()
             

        End Select


    End Sub




Come potete vedere nel nodo 34 ho inserito form2.show(), il form2 si apre correttamente, ma una volta caricato ritorna in primo piano il form1!!!

Non vorrei utilizzare Form2.ShowDialog() in quanto non è possibile ritornare al form1 senza prima aver chiuso il Form2!!!

Grazie


Ciao

Segnala ad un moderatore | IP: Collegato | Permalink

androita è offline Old Post 29-03-2012 15:46
Clicca qui per vedere il profilo dell'utente androita Clicca qui per inviare all'utente androita un messaggio privato Visualizza ulteriori messaggi scritti dall'utente androita Aggiungi l'utente androita alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
eziogsv
Utente di HTML.it



Registrato il: Aug 2001

Provenienza:

Messaggi: 465


ICQ :

MSN :

Skype :


Prova ad aggiungere in Form2

codice:
    Private Sub Form2_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown

        Me.Activate()

    End Sub


Bye

Segnala ad un moderatore | IP: Collegato | Permalink

eziogsv è offline Old Post 29-03-2012 17:00
Clicca qui per vedere il profilo dell'utente eziogsv Clicca qui per inviare all'utente eziogsv un messaggio privato Visualizza ulteriori messaggi scritti dall'utente eziogsv Aggiungi l'utente eziogsv alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
androita
Utente di HTML.it



Registrato il: Nov 2007

Provenienza:

Messaggi: 356


ICQ :

MSN :

Skype :


Ciao,
no non funziona...


Ho trovato questa proprietà topmost che in parte funziona
codice:
Me.TopMost = True


L'unica pecca è che rimane sempre in primo piano, nel senso che se sotto ho un altro form e lo seleziono, non va in secondo piano, per visualizzare il frm sottostante devo o chiudere o mettere sotto icona il form2!

e se uso questa porprietà su piu form si complica ancora di piu la vita!!!

Grazie

Segnala ad un moderatore | IP: Collegato | Permalink

androita è offline Old Post 29-03-2012 17:17
Clicca qui per vedere il profilo dell'utente androita Clicca qui per inviare all'utente androita un messaggio privato Visualizza ulteriori messaggi scritti dall'utente androita Aggiungi l'utente androita alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
androita
Utente di HTML.it



Registrato il: Nov 2007

Provenienza:

Messaggi: 356


ICQ :

MSN :

Skype :


penso che il mio problema sia perche uso la proprietà After select del treview, magari dopo l'after select vb esegue anche altre proprietà, qualcuno conosce l'ultima proprietà che viene eseguita dal treeview???

Preciso che io nel mio codice ho solo la proprietà Afterselect per il treeview

Grazie

Segnala ad un moderatore | IP: Collegato | Permalink

androita è offline Old Post 29-03-2012 17:19
Clicca qui per vedere il profilo dell'utente androita Clicca qui per inviare all'utente androita un messaggio privato Visualizza ulteriori messaggi scritti dall'utente androita Aggiungi l'utente androita alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
eziogsv
Utente di HTML.it



Registrato il: Aug 2001

Provenienza:

Messaggi: 465


ICQ :

MSN :

Skype :


Mah, ho creato un semplice programmino con un TreeView, ho inserito una Sub AfterSelect e col codice che ho postato... Form2 rimane tranquillamente in primo piano (mentre senza torna in primo piano Form1).

A questo punto punto in Form1 ci deve essere qualcosa che lo riporta nuovamente in primo piano... tipo una label che cambia valore a seconda della selezione o quant' altro.

Prova a mettere una interruzione subito dopo il Me.Activate(), su un codice neutro, tipo il Me.Activate ripetuto due volte, verifica se Form2 è effettivamente andato in primo piano dopo il primo Me.Activate e poi istruzione per istruzione (F8) controlla quando Form1 torna in primo piano.

Di più nin zo.

Ultima modifica ad opera dell'utente eziogsv il 29-03-2012 alle 17:35

Segnala ad un moderatore | IP: Collegato | Permalink

eziogsv è offline Old Post 29-03-2012 17:32
Clicca qui per vedere il profilo dell'utente eziogsv Clicca qui per inviare all'utente eziogsv un messaggio privato Visualizza ulteriori messaggi scritti dall'utente eziogsv Aggiungi l'utente eziogsv alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
androita
Utente di HTML.it



Registrato il: Nov 2007

Provenienza:

Messaggi: 356


ICQ :

MSN :

Skype :


ho provato a fare come dici tu ma non funziona, dopo me.activate ho messo exit sub, ma eseguendolo passo passo con f8 vedo che apre il form2 in primo piano, esegue le istruzioni del form load e poi ritorna nel end select del form1.

Te nel tuo progetto hai usato un select case per capire il nodo selezionato?

ora voglio provare ad abilitare un timer nal case del nodo, e far aprire il form2 dal timer

Grazie

Segnala ad un moderatore | IP: Collegato | Permalink

androita è offline Old Post 29-03-2012 17:38
Clicca qui per vedere il profilo dell'utente androita Clicca qui per inviare all'utente androita un messaggio privato Visualizza ulteriori messaggi scritti dall'utente androita Aggiungi l'utente androita alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
eziogsv
Utente di HTML.it



Registrato il: Aug 2001

Provenienza:

Messaggi: 465


ICQ :

MSN :

Skype :


Si, ho seguito pari pari, per quanto sia visibile, il tuo codice, Select Case compreso.

Ma precisa: dici che Form2 va in primo piano, ma andando passo passo Form1 quindi non torna in primo piano?

Andando passo passo il tutto si interrompe all' End Select di Form1?

Se veramente il codice termina all' End Select potresti provare a scrivere dopo l' End Select:

codice:
   If Form2.Visible then Form2.Activate


Bye

Segnala ad un moderatore | IP: Collegato | Permalink

eziogsv è offline Old Post 29-03-2012 17:49
Clicca qui per vedere il profilo dell'utente eziogsv Clicca qui per inviare all'utente eziogsv un messaggio privato Visualizza ulteriori messaggi scritti dall'utente eziogsv Aggiungi l'utente eziogsv alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
androita
Utente di HTML.it



Registrato il: Nov 2007

Provenienza:

Messaggi: 356


ICQ :

MSN :

Skype :


Grazie

ora provo, se ho altri problemi ti scrivo domani!!!

Grazie

Ciao

Segnala ad un moderatore | IP: Collegato | Permalink

androita è offline Old Post 29-03-2012 17:51
Clicca qui per vedere il profilo dell'utente androita Clicca qui per inviare all'utente androita un messaggio privato Visualizza ulteriori messaggi scritti dall'utente androita Aggiungi l'utente androita alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
Vinsent
Utente di HTML.it



Registrato il: May 2011

Provenienza:

Messaggi: 278


ICQ :

MSN :

Skype :


Ho provato anch' io...il form2 rimane sopra il primo con una delle tre righe a scelta:
codice:
Me.Activate()
Me.Focus()
Me.BringToFront()

a patto che il codice sia inserito nell' evento Shown del form2, se si scrive nel Load rimane sotto il primo form.
Da msdn:
Evento Form.Load = Si verifica prima che il form venga visualizzato per la prima volta
Evento Form.Shown = Si verifica la prima volta che il form viene visualizzato
quel "prima" del Load mi fa pensare al clic del mouse che ridà il focus al form1, per provare ho messo 'TreeView1.Enabled = False' prima di 'Form2.Show()' e il codice funziona senza quanto scritto sopra...sempre se non stò scrivendo caxxate...
ciao

PS: nel form2 modifico il testo di una label del form1.

Segnala ad un moderatore | IP: Collegato | Permalink

Vinsent è offline Old Post 29-03-2012 18:36
Clicca qui per vedere il profilo dell'utente Vinsent Clicca qui per inviare all'utente Vinsent un messaggio privato Visualizza ulteriori messaggi scritti dall'utente Vinsent Aggiungi l'utente Vinsent alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
alka
Moderatore di Programmazione e CGI-Perl



Registrato il: Oct 2001

Provenienza: Reggio Emilia

Messaggi: 23393


ICQ :

MSN :

Skype :


Citazione:
Originariamente inviato da androita
ho provato a fare come dici tu ma non funziona, dopo me.activate ho messo exit sub, ma eseguendolo passo passo con f8 vedo che apre il form2 in primo piano, esegue le istruzioni del form load e poi ritorna nel end select del form1.


Costruisci un prototipo di applicazione simile a quella in esame dove intercetti l'evento AfterSelect e visualizzi un secondo Form.

Se l'effetto non viene riprodotto, probabilmente c'è qualcosa nel tuo progetto che influisce sul comportamento, altrimenti pubblica il codice intero del prototipo così possiamo testarlo anche noi.


__________________
MARCO BREVEGLIERI
Sviluppo Software e Web
Consulenza e corsi di programmazione

http://www.marco.breveglieri.name

Segnala ad un moderatore | IP: Collegato | Permalink

alka è offline Old Post 29-03-2012 18:55
Clicca qui per vedere il profilo dell'utente alka Clicca qui per inviare all'utente alka un messaggio privato Visita l'homepage dell'utente alka Visualizza ulteriori messaggi scritti dall'utente alka Aggiungi l'utente alka alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
androita
Utente di HTML.it



Registrato il: Nov 2007

Provenienza:

Messaggi: 356


ICQ :

MSN :

Skype :


Ho fatto un modello nuovo ed ho lo stesso problema...
QUI potete scaricare il rar del progetto, uso visual studio 2010.

Grazie

Ciao

Segnala ad un moderatore | IP: Collegato | Permalink

androita è offline Old Post 29-03-2012 19:36
Clicca qui per vedere il profilo dell'utente androita Clicca qui per inviare all'utente androita un messaggio privato Visualizza ulteriori messaggi scritti dall'utente androita Aggiungi l'utente androita alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
eziogsv
Utente di HTML.it



Registrato il: Aug 2001

Provenienza:

Messaggi: 465


ICQ :

MSN :

Skype :


Scaricato il progetto.

Se, come ti ho detto, inserisci nella Classe Form2 il codice:

codice:
    Private Sub Form2_Shown(sender As Object, e As System.EventArgs) Handles Me.Shown

        Me.Activate()

    End Sub


Form2 rimane perfettamente in primo piano , sia con i Form WindowState settati come hai fatto te (Maximized) che cambiando il WindowState in Normal.

Okkio che l' evento è Shown, non Load.

A questo punto se a te Form2 continua a rimanere in background, hai qualche problema in VS...

Bye

Ultima modifica ad opera dell'utente eziogsv il 29-03-2012 alle 21:39

Segnala ad un moderatore | IP: Collegato | Permalink

eziogsv è offline Old Post 29-03-2012 21:37
Clicca qui per vedere il profilo dell'utente eziogsv Clicca qui per inviare all'utente eziogsv un messaggio privato Visualizza ulteriori messaggi scritti dall'utente eziogsv Aggiungi l'utente eziogsv alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
androita
Utente di HTML.it



Registrato il: Nov 2007

Provenienza:

Messaggi: 356


ICQ :

MSN :

Skype :


Si funziona!!!!

Sbagliavo io a inserire me.activate, lo inserire nel form load e non nel form show!!!


Grazie per l'aiuto!!

Segnala ad un moderatore | IP: Collegato | Permalink

androita è offline Old Post 30-03-2012 08:41
Clicca qui per vedere il profilo dell'utente androita Clicca qui per inviare all'utente androita un messaggio privato Visualizza ulteriori messaggi scritti dall'utente androita Aggiungi l'utente androita alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
eziogsv
Utente di HTML.it



Registrato il: Aug 2001

Provenienza:

Messaggi: 465


ICQ :

MSN :

Skype :


Prego, si fa quel che si può

Segnala ad un moderatore | IP: Collegato | Permalink

eziogsv è offline Old Post 30-03-2012 12:35
Clicca qui per vedere il profilo dell'utente eziogsv Clicca qui per inviare all'utente eziogsv un messaggio privato Visualizza ulteriori messaggi scritti dall'utente eziogsv Aggiungi l'utente eziogsv alla tua lista degli utenti amici Modifica / Cancella il messaggio Rispondi quotando   Torna su
Tutte le ore sono con fuso orario CET. Ora sono le 03:51.     

    Ultima discussione   Prossima discussione Invia una risposta
Versione per la stampa | Invia il thread via email | Ricevi aggiornamenti sul thread | Scarica il thread
 

Cerchi un argomento specifico e hai fretta? Usa il motore di ricerca