Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Gli eventi per i controlli (e per i moduli) vengono in genere impostati tramite Visual Studio Visual Designer per Windows Form. L'impostazione di un evento tramite Visual Designer è nota come gestione di un evento in fase di progettazione. È anche possibile gestire gli eventi in modo dinamico nel codice, noti come gestione degli eventi in fase di esecuzione. Un evento creato in fase di esecuzione consente di connettere i gestori eventi in modo dinamico in base alle operazioni attualmente eseguite dall'app.
Gestire un evento in fase di progettazione
In Visual Studio usare Progettazione visiva per gestire i gestori per gli eventi di controllo. Il Progettista Visivo genererà il codice del gestore e lo aggiungerà all'evento per te.
Impostare il gestore di eventi
Usare il riquadro Proprietà per aggiungere o impostare il gestore di un evento:
Apri il Designer visivo del form contenente il controllo da modificare.
Selezionare il controllo.
Modificare la modalità del riquadro Proprietà in Eventi premendo il pulsante eventi (
).
Trova l'evento a cui si vuole aggiungere un gestore, ad esempio l'evento Click.
Esegui una delle operazioni seguenti:
Fare doppio clic sull'evento per generare un nuovo gestore, è vuoto se non viene assegnato alcun gestore. Se non è vuoto, questa azione apre il codice per il modulo e naviga verso il gestore esistente.
Usare la casella di selezione (
) per scegliere un gestore esistente.
Nella casella di selezione verranno elencati tutti i metodi che abbiano una firma compatibile per il gestore eventi.
Cancellare il gestore
Per rimuovere un gestore eventi, non è possibile eliminare semplicemente il codice del gestore presente nel file code-behind del form, in quanto è ancora referenziato dal designer. Usare il riquadro Proprietà per rimuovere il gestore di un evento:
Apri il Designer visivo del form contenente il controllo da modificare.
Selezionare il controllo.
Modificare la modalità del riquadro Proprietà in Eventi premendo il pulsante eventi (
).
Trova l'evento che contiene il gestore da rimuovere, ad esempio, l'evento Click:
Fare clic con il pulsante destro del mouse sull'evento e scegliere Reimposta.
Gestire un evento in fase di esecuzione
In genere si aggiungono gestori eventi ai controlli in fase di progettazione tramite Progettazione visiva. È tuttavia possibile creare controlli in fase di esecuzione, che richiede l'aggiunta di gestori eventi nel codice. L'aggiunta di gestori nel codice offre anche la possibilità di aggiungere più gestori allo stesso evento.
Aggiungere un gestore
Nell'esempio seguente viene illustrato come creare un controllo e aggiungere un gestore eventi. Questo controllo viene creato nel gestore eventi Button.Click
un pulsante diverso. Quando si preme button1. Il codice sposta e ridimensiona un nuovo pulsante. L'evento di Click
del nuovo pulsante viene gestito dal metodo MyNewButton_Click
. Per far apparire il nuovo pulsante, lo si aggiunge alla raccolta Controls
del modulo. È disponibile anche il codice per rimuovere il gestore dell'evento Button1.Click
, illustrato nella sezione Rimuovere il gestore.
private void button1_Click(object sender, EventArgs e)
{
// Create and add the button
Button myNewButton = new()
{
Location = new Point(10, 10),
Size = new Size(120, 25),
Text = "Do work"
};
// Handle the Click event for the new button
myNewButton.Click += MyNewButton_Click;
this.Controls.Add(myNewButton);
// Remove this button handler so the user cannot do this twice
button1.Click -= button1_Click;
}
private void MyNewButton_Click(object sender, EventArgs e)
{
}
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'Create and add the button
Dim myNewButton As New Button() With {.Location = New Point(10, 10),
.Size = New Size(120, 25),
.Text = "Do work"}
'Handle the Click event for the new button
AddHandler myNewButton.Click, AddressOf MyNewButton_Click
Me.Controls.Add(myNewButton)
'Remove this button handler so the user cannot do this twice
RemoveHandler Button1.Click, AddressOf Button1_Click
End Sub
Private Sub MyNewButton_Click(sender As Object, e As EventArgs)
End Sub
Per eseguire questo codice, eseguire le operazioni seguenti in un modulo con Visual Studio Visual Designer:
- Aggiungere un nuovo pulsante al modulo e denominarlo Button1.
- Modificare la modalità riquadro proprietà
in eventi premendo il pulsante dell'evento ( ). - Fare doppio clic sull'evento Click per generare un gestore. Questa azione apre la finestra del codice e genera un metodo di
Button1_Click
vuoto. - Sostituire il codice del metodo con il codice riportato sopra.
Per altre informazioni sugli eventi C#, vedere Events (C#) Per altre informazioni sugli eventi di Visual Basic, vedere Events (Visual Basic)
Rimuovere il gestore
La sezione Aggiungi un gestore utilizzava del codice per dimostrare l'aggiunta di un gestore. Tale codice conteneva anche una chiamata per rimuovere un gestore:
button1.Click -= button1_Click;
RemoveHandler Button1.Click, AddressOf Button1_Click
Questa sintassi può essere utilizzata per rimuovere qualsiasi gestore eventi da qualsiasi evento.
Per altre informazioni sugli eventi C#, vedere Events (C#) Per altre informazioni sugli eventi di Visual Basic, vedere Events (Visual Basic)
Come usare più eventi con lo stesso gestore
Con il riquadro proprietà di Visual Studio, è possibile selezionare lo stesso gestore già in uso per un evento diverso. Seguire le istruzioni nella sezione Impostare il gestore per selezionare un gestore esistente invece di crearne uno nuovo.
In C# il gestore viene associato all'evento di un controllo nel codice della finestra di progettazione del modulo, che è stato modificato tramite Visual Designer. Per altre informazioni sugli eventi C#, vedere Events (C#)
Visual Basic
In Visual Basic il gestore viene associato all'evento di un controllo nel file code-behind del modulo, in cui viene dichiarato il codice del gestore eventi. È possibile aggiungere più parole chiave Handles
al codice del gestore eventi per usarlo con più eventi. Il Designer Visivo genererà automaticamente la parola chiave Handles
e la aggiungerà al gestore eventi. Tuttavia, puoi facilmente applicare questa operazione a qualsiasi evento e relativo gestore eventi di un controllo, purché la firma del metodo del gestore corrisponda all'evento. Per altre informazioni sugli eventi di Visual Basic, vedere Events (Visual Basic)
Questo codice illustra come usare lo stesso metodo come gestore per due eventi Button.Click
diversi:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click, Button2.Click
'Do some work to handle the events
End Sub
Vedere anche
- Eventi di controllo
- panoramica degli eventi
- Uso degli eventi del mouse
- Uso degli eventi della tastiera
- System.Windows.Forms.Button
.NET Desktop feedback