|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2003
Messaggi: 1025
|
Chisura di un form vb.net
All'interno di un'applicazione parto con un form di presentazione....in questo form c'è una label di introduzione e un pulsante...io quando clicco sul pulsante voglio che mi appaia il form principale del programma e voglio di conseguenza chiudere il form di presentazione...Ho utilizzato il metodo close ma non mi si toglie il form...come devo fare???io ho fatto così.
Private Sub btEntra_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btEntra.Click Dim frmPre As New FrmPresentazione() Dim frmPri As New FrmPrincipale() frmPri.Show() frmPre.Close() End Sub ho provato a mettere frmPre = nothing ma niente ho provato a chiudere il formPresentazione all'evento load del formPrincipale ma niente non sparisce... |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Feb 2002
Messaggi: 51
|
questo funziona su vb6, dovrebbe essere lo stesso...
Codice:
unload frmPre |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jun 2002
Città: NAPOLI!
Messaggi: 1310
|
oppure
Codice:
me.hide
__________________
"catch a homo by his toe, man I don't know no more am I the only fuckin' one who's normal any more?" |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Sep 2003
Messaggi: 1025
|
me.hide funziona ma mi nasconde il form e quando chiudo quello principale l'applicazione mi rimane aperta.
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Feb 2002
Messaggi: 51
|
per chiudere l'applicazione devi chiudere tutto
|
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Nov 2002
Messaggi: 160
|
Non puoi mettere la dichiarazione della form principale dentro l'evento on click!
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Sep 2003
Messaggi: 1025
|
Quote:
o devo utilizzare un'altro metodo?? |
|
|
|
|
|
|
#8 |
|
Member
Iscritto dal: Nov 2002
Messaggi: 160
|
frmPre è una variabile globale
Dim frmPri As New FrmPrincipale() Private Sub btEntra_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btEntra.Click frmPri.Show() frmPre.Close() End Sub |
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Sep 2003
Messaggi: 1025
|
Quote:
|
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Sep 2003
Messaggi: 1025
|
Datagrid
Ho un altro problema…in un applicazione ho 4 datagrid i quali all’interno delle proprietà ho cambiato la formattazione automatica…ma me lo cambia solo i uno dei quattro datagrid…gli altri 3 rimangono della stessa formattazione o cambiano formattazione ma i colori rimangono uguali…da cosa può dipendere??non riesco a cambiare la formattazione…neanche con questo:
Public Sub DimensionaCampo(ByVal dg As DataGrid, ByVal tbmapping As Integer, ByVal tb As String, ByVal campo As Integer, ByVal larghezza As Integer) Dim tbs As New DataGridTableStyle() tbs.MappingName = CStr(tbmapping) dg.TableStyles.Add(tbs) dg.TableStyles(tb).GridColumnStyles(campo).Width = larghezza dg.tableStyle.backcolor ecc ‘neanche da qui riesco a modificare il colore... End Sub |
|
|
|
|
|
#11 |
|
Member
Iscritto dal: Nov 2002
Messaggi: 160
|
ByRef dg As DataGrid
|
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: Sep 2003
Messaggi: 1025
|
Quote:
grazie quindi basta che lo dichiaro così.... per quanto riguarda la chiusura del form funziona ma non riesco a nasconderlo e il form di presentazione mi rimane dietro a quello principale.... allora ho fatto così... Private Sub btEntra_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btEntra.Click 'se premo il pulsante prima che finiscano i 10 secondi il form si apre e il timer si stoppa. myTimer.Stop() Dim frLibri As New FrmLibri() frLibri.ShowDialog() Me.Hide() 'non serve a niente perchè in realtà non si nasconde il form Me.Close() End Sub se invece al posto di Me.ShowDialog() uso ME.SHOW mi esce subito dall'applicazione... come faccio a nascondere sotto il formpresentazione...non funziona neanche con visible. |
|
|
|
|
|
|
#13 | |
|
Senior Member
Iscritto dal: Sep 2003
Messaggi: 1025
|
Quote:
Ultima modifica di mangzeus : 10-05-2004 alle 22:46. |
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Sep 2003
Messaggi: 1025
|
poi se non sono troppo invadente con calma perchè penso che ne saprai più di me avrei una cosa nell'applicazione che in un metodo non mi funziona ma in un altro si...e se mi potevi dare l'email così ti postavo tutto io su un file txt con il codice anche...mi faresti un favore a darci un occhio??
|
|
|
|
|
|
#15 |
|
Member
Iscritto dal: Nov 2002
Messaggi: 160
|
Allora:
1) gli OGGETTI passati ad una funzione o ad una procedura devo essere sempre passati per riferimento (ByRef) e non per valore. 2) In genere (a parte casi particolari) non si mette mai la dichiarazione di una form del progetto dentro una sub... Quando la sub termina vengono deallocate tutte le variabili dichiarate al suo interno compresa la form. 3) showdialog visualizza una finestra di dialogo in modalità "modale" ovvero l'interazione tra utente e programma viene ristretta alla finestra di dialogo fino alla sua chiusura; poi riprende la normale esecuzione del programma. Non ho ben capito cosa vuoi fare cmq: Nella form principale, nell'evento on_load (o qualcosa del genere) fai comparire una finestra di dialogo con showdialog dove hai la tua scritta e il tuo bel bottone. Basta non devi fare altro! Insomma ti consiglio di leggerti attentamente un libro sulla programmazione Object Oriented Ultima modifica di fabio_tarantino : 11-05-2004 alle 00:35. |
|
|
|
|
|
#16 | |
|
Senior Member
Iscritto dal: Sep 2003
Messaggi: 1025
|
Quote:
cosi ho fatto e mi riesce di chiuderlo ma io voglio anche nasconderlo e non ci riesco... Private Shared myTimer As New System.Windows.Forms.Timer() Public Shared frmpre As New FrmPresentazione() Private Sub FrmPresentazione_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'mostro il form di presentazione Me.Show() 'imposto l'evento tick (quando sono passati i secondi con cui viene impostato il timer) alla sub di apertura del formLibri AddHandler myTimer.Tick, AddressOf apriform myTimer.Interval = 10000 myTimer.Start() End Sub Private Sub btEntra_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btEntra.Click 'se premo il pulsante prima che finiscano i 10 secondi il form si apre e il timer si stoppa. myTimer.Stop() Dim frLibri As New FrmLibri() frLibri.ShowDialog() Me.Hide() Me.Close() End Sub Public Sub apriform(ByVal sender As Object, ByVal e As EventArgs) 'quando sono passati 10 secondi il timer si stoppa e visualizza il formLibri myTimer.Stop() Dim frLibri As New FrmLibri() frLibri.ShowDialog() Me.Close() End Sub io voglio nasconderlo il form presentazione oltre a chiuderlo...da qusto codice cosa devo modificare??? |
|
|
|
|
|
|
#17 | |
|
Member
Iscritto dal: Nov 2002
Messaggi: 160
|
Quote:
Fai così: Metti nella form principale questa sub Private Sub AvvioPresentazione(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim frPre as New FrmPrincipale() Me.hide Me.hide End Sub |
|
|
|
|
|
|
#18 | |
|
Member
Iscritto dal: Nov 2002
Messaggi: 160
|
Quote:
Togli quei timer! Fai così: Metti nella form principale questa sub Private Sub AvvioPresentazione(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim frPre as New FrmPrincipale() Me.hide() //nasconde la form principale frPre.ShowDialog() //visualizza la form di presentazione (interrompe l'esecuzione di quella principale fino alla sua chiusura) Me.Show() //visualizza la form principale End Sub |
|
|
|
|
|
|
#19 | |
|
Senior Member
Iscritto dal: Sep 2003
Messaggi: 1025
|
Quote:
|
|
|
|
|
|
|
#20 | |
|
Member
Iscritto dal: Nov 2002
Messaggi: 160
|
Quote:
La soluzione che vuoi utilizzare tu non va bene per un semplice motivo: dichiarare il form principale nel form di presentazione non ha senso se il form di presentazione viene chiuso subito! La gerarchia deve essere: Form Principale -> Form Presentazione e non Form Presentazione -> Form Principale Il trucco sta nel caricare il form principale non visibile, e renderlo visibile subito dopo la chiusura del form di presentazione. Altrimenti ti sei spiegato male. O hai cambiato idea! Cosa vuoi fare? Una "splash screen" che viene visualizzata durante il caricamento del programma o una finestra di benvenuto? Ultima modifica di fabio_tarantino : 11-05-2004 alle 11:55. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:24.



















