[c#]Apertura chiusura di form

sabato 29 marzo 2008 - 22.00

program Profilo | Junior Member

Ciao,
ho bisogno che all'avvio del programma venga visualizzato un form di login.

Nel file program.cs ho quindi inserito questa riga:
Application.Run(new Login());

Questo form deve pero' poi chiudersi e permettere l'accesso ad un secondo form che puo essere di due tipi a seconda del login.
Il form del login deve quindi chiudersi e lasciare il controllo a quello successivo.

Facendo in questo modo pero' quando vado a richiamare Close(); all'interno del form Login l'applicazione si chiude.
Come devo fare?

Grazie.

freeteo Profilo | Guru

ciao,
se lanci la sola form login (..Run(new Login()) dopo la chiusura di questa form il "run" dell'applicazione finisce e quindi giusto che si chiuda
Ti basta solo chiamarla modale prima di fare il run, e controllare il ritorno dalla form (DialogResult), ti posto un esempio di codice:

[STAThread] static void Main() { Application.EnableVisualStyles(); FormLogin frm = new FormLogin(); if (frm.ShowDialog() == DialogResult.OK) Application.Run(new Main()); else MessageBox.Show("Errore in login"); }


dove nella form login fai un codice tipo:
... if (txtNome.Text == "matteo" && txtPassword.Text == "raumer") DialogResult = DialogResult.OK; else DialogResult = DialogResult.Abort; this.Close();


ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

program Profilo | Junior Member

Ti Ringrazio.

program Profilo | Junior Member

Un altra domanda se possibile,
invece di far passare solo dialogresult.ok è possibile fargli passare due valori insieme?

E' possibile creare dei valori personalizzati da ritornare con dialogresult??

Grazie ancora.

freeteo Profilo | Guru

>Un altra domanda se possibile,
>invece di far passare solo dialogresult.ok è possibile fargli
>passare due valori insieme?':
no, devi pensare a delle proprieta' della formLogin che dopo l'if, vai a recuperare. Quindi il dialogResult ti dice se tenerle in considerazione o meno...un codice tipo:
public partial class FormLogin : Form { private int codice; public int Codice { get { return codice; } set { codice = value; } } private string descrizione; public string Descrizione { get { return descrizione; } set { descrizione = value; } } public FormLogin() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { if (txtNome.Text == "matteo" && txtPassword.Text == "raumer") DialogResult = DialogResult.OK; else DialogResult = DialogResult.Abort; this.Close(); } }

e poi dopo la risposta positiva arrivata dalla form (DialogResult.OK) leggi le proprieta':

[STAThread] static void Main() { Application.EnableVisualStyles(); FormLogin frm = new FormLogin(); if (frm.ShowDialog() == DialogResult.OK) { //.... le recupero string codice = frm.Codice; string descrizione = frm.Descrizione; Application.Run(new Main()); } else MessageBox.Show("Errore in login"); }
Ovvio che queste 2 proprieta' "Codice" e "Descrizione" sono puramente di esempio...tu farai le tue, e le userai in modo corretto.



>E' possibile creare dei valori personalizzati da ritornare con
>dialogresult??
no, dialogResult è qualcosa di gia' fatto standard dal framework, se vuoi leggere diversi valori di ritorno da una form devi passare per le proprieta
come ti dicevo prima.


>Grazie ancora.
di nulla! se hai trovato utile qualche risposta accettala, cosi' marchiamo il thread come risolto.

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5