Windows Forms consente di creare applicazioni desktop visivamente, trascinando gli elementi dell'interfaccia utente su un'area di disegno. Questi elementi dell'interfaccia utente includono widget come pulsanti, pannelli o caselle di controllo.

Ogni elemento dell'interfaccia utente riceve determinati eventi. Ad esempio, puoi avere un evento di clic per i pulsanti, un evento modificato per le caselle di controllo o un evento di trascinamento della selezione per i pannelli.

Gli eventi utilizzano gestori di eventi o funzioni, che vengono eseguiti solo quando si verifica quel particolare evento.

Tipi di eventi utilizzati per diversi elementi dell'interfaccia utente

Ogni elemento dell'interfaccia utente ha un elenco di eventi. Ci sono molti corsi dove puoi conoscere importanti teorie e pratiche di UX o UI per aiutarti a decidere quali elementi dell'interfaccia utente utilizzare. Di seguito sono riportati alcuni esempi di eventi utilizzati dagli elementi dell'interfaccia utente.

Eventi tasto giù, tasto su o pressione tasto

instagram viewer

Gli elementi dell'interfaccia utente che consentono all'utente di immettere testo, ad esempio una casella di testo, possono utilizzare questi eventi. Questi eventi vengono attivati ​​ogni volta che l'utente preme un tasto sulla tastiera.

Questi possono essere utili in scenari in cui si dispone della funzionalità di ricerca e potrebbe essere necessario controllare costantemente qual è il valore della casella di testo.

privatovuototextBox1_KeyUp(mittente dell'oggetto, KeyEventArgs e)
{
Casella di testo casella di testo = (casella di testo) mittente;
stringa currentTextBoxValue = casella di testo. Testo;
}

Carica evento

L'evento di caricamento si verifica quando il modulo o un elemento dell'interfaccia utente viene visualizzato sullo schermo. È possibile utilizzare questo evento quando si desidera che una funzionalità specifica si verifichi nella fase di inizializzazione del modulo o del controllo.

Uno scenario in cui ciò può essere utile è se si desidera aggiungere controlli al modulo a livello di codice mentre è ancora in fase di caricamento.

privatovuotoForm1_Carica(mittente dell'oggetto, EventArgs e)
{
ToolTip toolTip1 = nuovo descrizione comando();
toolTip1.AutoPopDelay = 5000;
toolTip1.InitialDelay = 1000;
toolTip1.ReshowDelay = 500;
toolTip1.ShowAlways = VERO;
toolTip1.SetToolTip (this.button1, "Il mio pulsante1");
toolTip1.Popup += questo.ToolTip1_Popup;
}

L'evento popup della descrizione comando si verifica quando si passa il mouse su un elemento dell'interfaccia utente nell'applicazione e viene visualizzata una descrizione comando. Gli argomenti passati al gestore eventi consentono di accedere ai dati sulla descrizione comando, come il testo o le dimensioni.

privatovuotoToolTip1_Popup(mittente dell'oggetto, PopupEventArgs e)
{
ToolTip tooltip = mittente (ToolTip);
stringa tooltipText = descrizione comando. GetToolTip (pulsante 1);
var descrizione comando Dimensione = e. Dimensione descrizione comando;
}

Trascina e rilascia evento

Molti elementi dell'interfaccia utente possono utilizzare l'evento di trascinamento della selezione, inclusi il pannello, il pulsante, la casella immagine, la casella di gruppo e altro ancora. Questo evento viene attivato quando l'utente trascina un file nell'elemento dell'interfaccia utente.

privatovuotopannello1_DragDrop(mittente dell'oggetto, DragEventArgs e)
{
string[] files = (string[])e. Dati. GetData (Formati dati. FileDrop, falso);
}

Passa il mouse e gli eventi di congedo del mouse

L'evento mouse over si attiva quando il mouse passa sopra un elemento dell'interfaccia utente. Una volta che il mouse lascia e smette di passare sopra l'elemento, l'evento di uscita del mouse viene attivato.

privatovuotobutton1_MouseLascia(mittente dell'oggetto, EventArgs e)
{
Pulsante pulsante = (pulsante) mittente;
var buttonText = pulsante. Testo;
}

Evento modificato selezionato

Gli elementi dell'interfaccia utente che consentono all'utente di selezionare un'opzione possono utilizzare l'evento modificato selezionato. Ciò include pulsanti di opzione e caselle di controllo. La funzione viene attivata quando si seleziona o deseleziona la casella di controllo.

privatovuotocheckBox1_CheckedChanged(mittente dell'oggetto, EventArgs e)
{
Casella di spunta checkbox = (casella di spunta) mittente;
Stato CheckState = casella di controllo. Stato di controllo;
bool isChecked = casella di controllo. Controllato;
}

Eventi Valore modificato, Valore selezionato modificato o Data di modifica

L'evento valore modificato è disponibile negli elementi dell'interfaccia utente che consentono di selezionare un'opzione per modificare un valore. Ciò include le caselle combinate, i selettori di data e ora o il calendario. La funzione viene attivata quando l'utente seleziona un nuovo valore.

privatovuotomonthCalendar1_DateChanged(mittente dell'oggetto, DateRangeEventArgs e)
{
MonthCalendar calendar = mittente (MonthCalendar);
var oggi = calendario. OggiData;
var selectDateInizio = e. Inizio;
var selectDateEnd = e. Fine;
}

Fare clic su Evento pulsante

La funzione di gestione dell'evento click viene attivata quando si fa clic su un pulsante.

privatovuotobutton1_Click(mittente dell'oggetto, EventArgs e)
{
Pulsante pulsante = (pulsante) mittente;
stringa textValue = pulsante. Testo;
}

La struttura di un gestore di eventi

I gestori di eventi hanno due parametri principali: il mittente e un oggetto evento.

Il mittente è un riferimento all'elemento o all'oggetto dell'interfaccia utente che ha attivato l'evento, ad esempio un pulsante, una casella di controllo o un pannello. Ad esempio, in un evento di modifica della casella di controllo, il mittente sarebbe la casella di controllo su cui l'utente ha fatto clic.

Il parametro event contiene un oggetto che memorizza i dati sull'evento che si è verificato. Ciò potrebbe includere le coordinate X e Y di un clic di un pulsante o la posizione del mouse nel momento in cui si attiva l'evento.

privatovuotopannello1_DragDrop(mittente dell'oggetto, DragEventArgs e)
{
// Accedi alle proprietà dell'elemento dell'interfaccia utente che ha attivato l'evento
Pannello pannello = (pannello) mittente;
pannello. Abilitato = falso;
// Accede ai dati dell'evento
var dati evento = e. Dati;
}

Come creare e utilizzare gestori di eventi

Innanzitutto, creane uno nuovo Applicazione Winforms Forms in Visual Studio. Se non conosci Windows Form, ce ne sono molti clonare le app che puoi creare mentre impari Windows Forms.

Gestori di eventi sulla tela

È possibile generare gestori di eventi dalla finestra delle proprietà sul lato destro dell'area di disegno. Dopo aver creato una nuova applicazione Windows Forms, creare un gestore eventi per l'elemento dell'interfaccia utente della casella di controllo. Ciò si attiverà quando l'utente seleziona o deseleziona la casella di controllo.

  1. Apri il menu della casella degli strumenti a sinistra di Visual Studio. Trascina e rilascia un elemento dell'interfaccia utente della casella di controllo sull'area di disegno.
  2. Evidenzia la casella di controllo sulla tela.
  3. Nella finestra delle proprietà del pannello di destra, fare clic sull'icona del fulmine giallo per visualizzare l'elenco degli eventi. Scorri verso il basso fino a SelezionatoModificato evento.
  4. Fare clic sullo spazio vuoto accanto a SelezionatoModificato evento. Questo genererà automaticamente una nuova funzione per gestire l'evento. La funzione verrà creata nella parte code-behind dell'applicazione, nella tua file .cs.
    privatovuotocheckBox1_CheckedChanged(mittente dell'oggetto, EventArgs e)
    {
    // Il tuo codice qui
    }

Gestori di eventi che utilizzano il codice sottostante

Crea una nuova funzione nel codice sottostante e collegala all'elemento dell'interfaccia utente nell'area di disegno.

  1. Nell'area di disegno, fare clic e trascinare un elemento dell'interfaccia utente del pulsante. Per impostazione predefinita, il nome del nuovo pulsante sarà "pulsante1".
  2. Aprire .cs. Se hai lasciato il nome dell'applicazione Windows Form predefinito di "Form1", questo sarebbe Form1.cs.
  3. All'interno della classe Form1, crea una nuova funzione. Assicurati che segua la struttura di un gestore di eventi e abbia due parametri per il mittente e l'oggetto evento.
    privatovuotobutton1_MouseHoverEvent(mittente dell'oggetto, EventArgs e)
    {
    // Il tuo codice qui
    }
  4. Collega il gestore dell'evento all'evento al passaggio del mouse di button1. Puoi farlo nel costruttore.
    pubblico Modulo1()
    {
    InizializzaComponent();
    questo.button1.MouseHover += button1_MouseHoverEvent;
    }
  5. In alternativa, puoi anche collegare la funzione all'evento utilizzando la finestra delle proprietà nell'area di disegno. Apri la finestra delle proprietà e inserisci il nome del gestore eventi nel campo MouseHover. Questo sarebbe button1_MouseHoverEvent.

Come utilizzare lo stesso gestore di eventi su più eventi

È possibile collegare la stessa funzione a più eventi. In questo caso, se è stata chiamata una singola funzione MouseEvent, puoi aggiungere quel gestore di eventi sia all'evento al passaggio del mouse che al clic del mouse. Questo gestirà quindi entrambi gli eventi utilizzando la stessa funzione.

questo.button1.MouseHover += button1_MouseEvent;
questo.button1.MouseClick += button1_MouseEvent;

Utilizzo di eventi in un'applicazione Windows Form

Un'applicazione Windows Forms consente di trascinare e rilasciare vari elementi dell'interfaccia utente come pulsanti, pannelli o caselle di testo su un'area di disegno. È possibile aggiungere gestori di eventi a questi elementi dell'interfaccia utente, in base ai diversi eventi che possono verificarsi all'interno dell'applicazione.

Se stai creando un'applicazione Windows, potresti anche voler aggiungere immagini o grafica come parte della tua interfaccia utente. Puoi usare varie classi C# come la classe Grafica, Penna o Colore, che ti consentirà di disegnare diversi tipi di forme sull'area di disegno.