Domandona

mercoledì 01 ottobre 2008 - 10.53

pdbine Profilo | Newbie

Ciao a tutti!
La mia situazione è questa: sto implementando la voce nuovo di una windows application. Cliccando su file->nuovo creo un nuovo form che poi mostro con showdialog(). All'interno di questo form l'utente seleziona alcune voci riguardanti il nuovo oggetto da creare. La mia domanda è come intercetto l'evento di chiusura? Ovvero, nel form principale, come faccio a capire se l'utente ha chiuso il form con Ok oppure con Annulla?
(Per implementare entrambi i pulsanti ho provvisoriamente usato Close()).
Grazie mille!!!
Ciao,fra

Dainesi Profilo | Senior Member

Esamina la proprietà CancelError della casella di dialogo. Se equivale a True allora l'utente ha premuto Annulla.

pdbine Profilo | Newbie

Scusa ma in che modo?
Nel form principale io ho scritto:
Form nome = new MioForm();
nome.Showdialog();
Nei metodi che catturano l'evento click di Annulla e Ok ho solo messo Close();
Grazie mille!
Ciao, fra

Dainesi Profilo | Senior Member

Avevi omesso di dirci che la tua applicazione è fatta in VB.NET !!! (e non VB6 come ci si aspetta in questo Thread !!!). Comunque ... devi fare in modo che ogni nuova form possa scrivere negli eventi Click dei due pulsanti i valori dei campi della Form in variabili globali (o Friends).
Visto che la Form la puoi chiudere in tre modi, devi agganciare la routine di controllo e valorizzazione in tutti e tre questi eventi:

Form1_FormClosing()
btnOK_Clik()
btnCancel_Click()

aiedail92 Profilo | Expert

Ciao

Più semplicemente potresti impostare la proprietà DialogResult dei due button rispettivamente a DialogResult.Ok e a DialogResult.Cancel, e quindi dopo aver mostrato la form con ShowDialog, verificare quale sia il valore della proprietà:

Form form = new TuoForm(); form.ShowDialog(); switch (form.DialogResult) { case DialogResult.OK: //Ok! break; case DialogResult.Cancel: //Cancel! break; default: //Unexpected behavior! break; }

La proprietà DialogResult del Button sarà trasferita a quella del Form, e quando il bottone verrà premuto, la finestra sarà anche automaticamente chiusa.

Luca
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