Met Windows Forms kunt u visueel bureaubladtoepassingen maken door UI-elementen naar een canvas te slepen. Deze UI-elementen bevatten widgets zoals knoppen, panelen of selectievakjes.

Elk UI-element ontvangt bepaalde gebeurtenissen. U kunt bijvoorbeeld een klikgebeurtenis hebben voor knoppen, een gewijzigde gebeurtenis voor selectievakjes of een slepen-en-neerzetten-gebeurtenis voor panelen.

Gebeurtenissen gebruiken gebeurtenishandlers of -functies, die alleen worden uitgevoerd wanneer die specifieke gebeurtenis zich voordoet.

Soorten gebeurtenissen die worden gebruikt voor verschillende UI-elementen

Elk UI-element heeft een lijst met gebeurtenissen. Er zijn veel cursussen waar je kunt leer over belangrijke UX- of UI-theorieën en -praktijken om u te helpen beslissen welke UI-elementen u wilt gebruiken. Hier zijn een paar voorbeelden van gebeurtenissen die worden gebruikt door UI-elementen.

Toets omlaag, toets omhoog of toetsaanslaggebeurtenissen

UI-elementen waarmee de gebruiker tekst kan invoeren, zoals een tekstvak, kunnen deze gebeurtenissen gebruiken. Deze gebeurtenissen worden geactiveerd telkens wanneer de gebruiker een toets op zijn toetsenbord indrukt.

instagram viewer

Deze kunnen handig zijn in scenario's waarin u zoekfunctionaliteit heeft en u mogelijk constant moet controleren wat de waarde van het tekstvak is.

privaatleegtetextBox1_KeyUp(object afzender, KeyEventArgs e)
{
TextBox textbox = (TextBox) afzender;
string currentTextBoxValue = tekstvak. Tekst;
}

Gebeurtenis laden

De load-gebeurtenis vindt plaats wanneer het formulier of een UI-element op het scherm wordt weergegeven. U kunt deze gebeurtenis gebruiken wanneer u specifieke functionaliteit wilt laten plaatsvinden in de initialisatiefase van het formulier of besturingselement.

Een scenario waarin dit handig kan zijn, is als u programmatisch besturingselementen aan het formulier wilt toevoegen terwijl het nog aan het laden is.

privaatleegteForm1_Laden(object afzender, EventArgs e)
{
ToolTip toolTip1 = nieuwe ToolTip();
toolTip1.AutoPopDelay = 5000;
toolTip1.InitialDelay = 1000;
toolTip1.ReshowDelay = 500;
toolTip1.ShowAlways = WAAR;
toolTip1.SetToolTip (this.button1, "Mijn knop1");
toolTip1.Pop-up += deze.ToolTip1_Pop-up;
}

De pop-upgebeurtenis voor knopinfo vindt plaats wanneer u de muisaanwijzer op een UI-element in de toepassing plaatst en er een knopinfo verschijnt. De argumenten die aan de gebeurtenishandler worden doorgegeven, geven u toegang tot gegevens over de knopinfo, zoals de tekst of de grootte.

privaatleegteToolTip1_Pop-up(object afzender, PopupEventArgs e)
{
ToolTip tooltip = (ToolTip) afzender;
string tooltipText = tooltip. GetToolTip (knop1);
var tooltipSize = e. ToolTipSize;
}

Gebeurtenis slepen en neerzetten

Veel UI-elementen kunnen de gebeurtenis slepen en neerzetten gebruiken, inclusief het paneel, de knop, het afbeeldingsvak, het groepsvak en meer. Deze gebeurtenis wordt geactiveerd wanneer de gebruiker een bestand naar het UI-element sleept.

privaatleegtepanel1_DragDrop(object afzender, DragEventArgs e)
{
string[] bestanden = (string[])e. Gegevens. GetData (DataFormats. BestandDrop, vals);
}

Mouse Over en Mouse Verlaat Evenementen

De mouse over-gebeurtenis wordt geactiveerd wanneer de muis over een UI-element beweegt. Zodra de muis weggaat en niet meer boven het element zweeft, wordt de muisverlaat-gebeurtenis geactiveerd.

privaatleegtebutton1_MouseLeave(object afzender, EventArgs e)
{
Knop knop = (Knop) afzender;
var knopTekst = knop. Tekst;
}

Aangevinkt gewijzigde gebeurtenis

UI-elementen waarmee de gebruiker een optie kan selecteren, kunnen de aangevinkte gewijzigde gebeurtenis gebruiken. Dit omvat keuzerondjes en selectievakjes. De functie wordt geactiveerd wanneer u het selectievakje aan- of uitvinkt.

privaatleegtecheckBox1_CheckedChanged(object afzender, EventArgs e)
{
CheckBox checkbox = (CheckBox) afzender;
CheckState staat = checkbox. Controlestatus;
bool isChecked = checkbox. Gecontroleerd;
}

Waarde gewijzigd, geselecteerde waarde gewijzigd of datum gewijzigde gebeurtenissen

De gebeurtenis waarde gewijzigd is beschikbaar op UI-elementen waarmee u een optie kunt selecteren om een ​​waarde te wijzigen. Dit omvat keuzelijsten met invoervak, datum- en tijdkiezers of de kalender. De functie wordt geactiveerd wanneer de gebruiker een nieuwe waarde selecteert.

privaatleegtemaandKalender1_DatumGewijzigd(object afzender, DateRangeEventArgs e)
{
MonthCalendar-kalender = (Maandkalender) afzender;
var vandaag = kalender. Datum van vandaag;
var SelectedDatesStart = e. Begin;
var SelectedDatesEnd = e. Einde;
}

Klik op de knop Evenement

De klikgebeurtenishandlerfunctie wordt geactiveerd wanneer u op een knop klikt.

privaatleegtebutton1_Click(object afzender, EventArgs e)
{
Knop knop = (Knop) afzender;
string textValue = knop. Tekst;
}

De structuur van een gebeurtenishandler

Event-handlers hebben twee primaire parameters: de afzender en een event-object.

De afzender is een verwijzing naar het UI-element of object dat de gebeurtenis heeft geactiveerd, zoals een knop, selectievakje of paneel. In een gebeurtenis met een gewijzigd selectievakje is de afzender bijvoorbeeld het selectievakje waarop de gebruiker heeft geklikt.

De gebeurtenisparameter bevat een object dat gegevens opslaat over de gebeurtenis die zich heeft voorgedaan. Dit kan de X- en Y-coördinaten van een klik op de knop zijn, of de locatie van de muis op het moment dat de gebeurtenis wordt geactiveerd.

privaatleegtepanel1_DragDrop(object afzender, DragEventArgs e)
{
// Toegang tot eigenschappen van het UI-element dat de gebeurtenis heeft geactiveerd
Paneelpaneel = (Panel) afzender;
paneel. Ingeschakeld = vals;
// Toegang tot gegevens van het evenement
var eventData = e. Gegevens;
}

Gebeurtenishandlers maken en gebruiken

Maak eerst een nieuwe Winforms Forms-toepassing in Visual Studio. Als Windows Forms nieuw voor u is, zijn er veel kloon apps die u kunt maken terwijl u Windows Formulieren leert.

Event handlers op het canvas

U kunt gebeurtenishandlers genereren vanuit het eigenschappenvenster aan de rechterkant van het canvas. Nadat u een nieuwe Windows Forms-toepassing hebt gemaakt, maakt u een gebeurtenishandler voor het selectievakje UI-element. Dit wordt geactiveerd wanneer de gebruiker het selectievakje in- of uitschakelt.

  1. Open het toolbox-menu aan de linkerkant van Visual Studio. Sleep een UI-element van een selectievakje naar het canvas.
  2. Markeer het selectievakje op het canvas.
  3. Klik in het eigenschappenvenster in het rechterdeelvenster op het gele bliksempictogram om de lijst met gebeurtenissen te bekijken. Scroll naar beneden naar de AangevinktGewijzigd evenement.
  4. Klik op de lege ruimte naast de AangevinktGewijzigd evenement. Dit genereert automatisch een nieuwe functie om de gebeurtenis af te handelen. De functie wordt gemaakt in het code-behind-gedeelte van de applicatie, in uw .cs-bestand.
    privaatleegtecheckBox1_CheckedChanged(object afzender, EventArgs e)
    {
    // Uw code hier
    }

Event-handlers die de code erachter gebruiken

Maak een nieuwe functie in de code erachter en koppel deze aan het UI-element op het canvas.

  1. Klik en sleep op het canvas een UI-knopelement. Standaard is de naam van de nieuwe knop "knop1".
  2. Open .cs. Als u de standaard Windows Form-toepassingsnaam "Form1" hebt verlaten, zou dit zijn: Form1.cs.
  3. Maak in de klasse Form1 een nieuwe functie. Zorg ervoor dat het de structuur van een gebeurtenishandler volgt en twee parameters heeft voor de afzender en het gebeurtenisobject.
    privaatleegtebutton1_MouseHoverEvent(object afzender, EventArgs e)
    {
    // Uw code hier
    }
  4. Koppel de gebeurtenishandler aan de muisaanwijzergebeurtenis van button1. Dit doe je in de constructor.
    openbaar Formulier 1()
    {
    InitialiseerComponent();
    deze.button1.MouseHover += button1_MouseHoverEvent;
    }
  5. Als alternatief kunt u de functie ook aan de gebeurtenis koppelen via het eigenschappenvenster op het canvas. Open het eigenschappenvenster en voer de naam van uw gebeurtenishandler in het veld MouseHover in. Dit zou zijn button1_MouseHoverEvent.

Dezelfde gebeurtenishandler voor meerdere gebeurtenissen gebruiken

Je kunt dezelfde functie aan meerdere evenementen koppelen. In dit geval, als er een enkele functie was aangeroepen MuisEvent, kunt u die gebeurtenishandler toevoegen aan zowel de muisaanwijzer als de muisklikgebeurtenis. Dit zal dan beide gebeurtenissen afhandelen met dezelfde functie.

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

Gebeurtenissen gebruiken in een Windows Form-toepassing

Met een Windows Forms-toepassing kunt u verschillende UI-elementen, zoals knoppen, panelen of tekstvakken, naar een canvas slepen en neerzetten. U kunt gebeurtenishandlers aan deze UI-elementen toevoegen, op basis van de verschillende gebeurtenissen die binnen de toepassing kunnen plaatsvinden.

Als u een Windows-toepassing bouwt, wilt u misschien ook afbeeldingen of afbeeldingen toevoegen als onderdeel van uw gebruikersinterface. U kunt verschillende C#-klassen gebruiken, zoals de klasse Graphic, Pen of Color, waarmee u verschillende soorten vormen op het canvas kunt tekenen.