Windows Forms, UI öğelerini bir tuval üzerine sürükleyerek görsel olarak masaüstü uygulamaları oluşturmanıza olanak tanır. Bu UI öğeleri, düğmeler, paneller veya onay kutuları gibi widget'ları içerir.

Her UI öğesi belirli olayları alır. Örneğin, düğmeler için bir tıklama olayı, onay kutuları için değiştirilmiş bir olay veya paneller için bir sürükle ve bırak olayı olabilir.

Olaylar, yalnızca belirli bir olay meydana geldiğinde yürütülen olay işleyicileri veya işlevleri kullanır.

Farklı UI Öğeleri için Kullanılan Etkinlik Türleri

Her UI öğesinin bir olay listesi vardır. yapabileceğiniz birçok kurs var önemli UX veya UI teorileri ve uygulamaları hakkında bilgi edinin hangi UI öğelerini kullanacağınıza karar vermenize yardımcı olmak için. Burada, UI öğeleri tarafından kullanılan birkaç olay örneği verilmiştir.

Tuş Aşağı, Tuş Yukarı veya Tuşa Basma Olayları

Metin kutusu gibi kullanıcının metin girmesine izin veren UI öğeleri bu olayları kullanabilir. Bu olaylar, kullanıcı klavyesinde bir tuşa her bastığında tetiklenir.

instagram viewer

Bunlar, arama işlevine sahip olduğunuz senaryolarda faydalı olabilir ve metin kutusunun değerinin ne olduğunu sürekli olarak kontrol etmeniz gerekebilir.

özelgeçersiztextBox1_KeyUp(nesne gönderici, KeyEventArgs e)
{
TextBox textbox = (TextBox) gönderen;
string currentTextBoxValue = metin kutusu. Metin;
}

Olay Yükle

Load olayı, form veya bir UI öğesi ekranda işlendiğinde meydana gelir. Form veya denetimin başlatma aşamasında belirli işlevlerin gerçekleşmesini istediğinizde bu olayı kullanabilirsiniz.

Bunun yararlı olabileceği bir senaryo, form hala yüklenirken programlı olarak denetimler eklemek istemenizdir.

özelgeçersizForm1_Yükle(nesne gönderici, EventArgs e)
{
Araç İpucu araç İpucu1 = yeni Araç İpucu();
toolTip1.AutoPopDelay = 5000;
toolTip1.InitialDelay = 1000;
toolTip1.ReshowDelay = 500;
toolTip1.ShowAlways = doğru;
toolTip1.SetToolTip (bu.düğme1, "benim düğmem1");
toolTip1.Popup += Bu.ToolTip1_Popup;
}

Uygulamada bir UI öğesinin üzerine geldiğinizde araç ipucu açılır olayı gerçekleşir ve bir araç ipucu görüntülenir. Olay işleyicisine iletilen bağımsız değişkenler, metni veya boyutu gibi araç ipucu hakkındaki verilere erişmenize olanak tanır.

özelgeçersizToolTip1_Popup(nesne gönderici, PopupEventArgs e)
{
Araç İpucu araç ipucu = (Araç İpucu) gönderen;
string tooltipText = araç ipucu. GetToolTip (düğme1);
var tooltipSize = e. Araç İpucuBoyutu;
}

Sürükle ve Bırak Etkinliği

Panel, düğme, resim kutusu, grup kutusu ve daha fazlası dahil olmak üzere birçok UI öğesi sürükle ve bırak olayını kullanabilir. Bu olay, kullanıcı bir dosyayı UI öğesine sürüklediğinde tetiklenir.

özelgeçersizpanel1_DragDrop(nesne gönderici, DragEventArgs e)
{
string[] dosyalar = (string[])e. Veri. GetData (DataFormats. dosyaBırak, yanlış);
}

Fare Üzerine Gelme ve Fare Bırakma Olayları

Mouse over olayı, fare bir UI öğesinin üzerine geldiğinde tetiklenir. Fare ayrılıp öğenin üzerine gelmeyi bıraktığında, fare bırakma olayı tetiklenir.

özelgeçersizbutton1_MouseLeave(nesne gönderici, EventArgs e)
{
Düğme düğmesi = (Düğme) gönderen;
var buttonText = buton. Metin;
}

Kontrol Edilen Değiştirilen Etkinlik

Kullanıcının bir seçenek belirlemesine izin veren UI öğeleri, kontrol edilen değiştirilen olayı kullanabilir. Buna radyo düğmeleri ve onay kutuları dahildir. Onay kutusunu işaretlediğinizde veya işaretini kaldırdığınızda işlev tetiklenir.

özelgeçersizcheckBox1_CheckedDeğiştirildi(nesne gönderici, EventArgs e)
{
CheckBox onay kutusu = (CheckBox) gönderen;
CheckState durumu = onay kutusu. CheckState;
bool isChecked = onay kutusu. Kontrol;
}

Değer Değiştirildi, Seçilen Değer Değiştirildi veya Tarih Değiştirildi Olaylar

Değer değişti olayı, bir değeri değiştirmek için bir seçenek belirlemenize izin veren UI öğelerinde mevcuttur. Buna birleşik giriş kutuları, tarih ve saat seçiciler veya takvim dahildir. Kullanıcı yeni bir değer seçtiğinde işlev tetiklenir.

özelgeçersizayCalendar1_DateChanged(nesne gönderici, DateRangeEventArgs e)
{
MonthCalendar takvimi = (MonthCalendar) gönderen;
var bugün = takvim. Bugünün tarihi;
var seçiliTarihlerBaşlangıç ​​= e. Başlama;
var selectedDatesEnd = e. Son;
}

Düğme Etkinliği'ni tıklayın

Bir düğmeyi tıklattığınızda, tıklama olayı işleyici işlevi tetiklenir.

özelgeçersizbutton1_Click(nesne gönderici, EventArgs e)
{
Düğme düğmesi = (Düğme) gönderen;
string textValue = düğme. Metin;
}

Olay İşleyicinin Yapısı

Olay işleyicilerin iki birincil parametresi vardır: gönderen ve bir olay nesnesi.

Gönderen, bir düğme, onay kutusu veya panel gibi olayı tetikleyen UI öğesine veya nesneye bir başvurudur. Örneğin, bir onay kutusu değiştirildi olayında, gönderen, kullanıcının tıkladığı onay kutusu olacaktır.

Event parametresi, meydana gelen olayla ilgili verileri depolayan bir nesne içerir. Bu, bir düğme tıklamasının X ve Y koordinatlarını veya olayın tetiklendiği anda farenin konumunu içerebilir.

özelgeçersizpanel1_DragDrop(nesne gönderici, DragEventArgs e)
{
// Etkinliği tetikleyen UI öğesinin özelliklerine erişin
Panel paneli = (Panel) gönderen;
panel. Etkin = yanlış;
// Olaydan veriye erişin
var eventData = e. Veri;
}

Olay İşleyicileri Nasıl Oluşturulur ve Kullanılır

İlk önce, yeni bir tane oluşturun Visual Studio'da Winforms Forms uygulaması. Windows Forms'da yeniyseniz, birçok Windows Forms öğrenirken yapabileceğiniz uygulamaları klonlayın.

Tuval Üzerindeki Olay İşleyicileri

Tuvalin sağ tarafındaki özellikler penceresinden olay işleyicileri oluşturabilirsiniz. Yeni bir Windows Forms uygulaması oluşturduktan sonra, onay kutusu UI öğesi için bir olay işleyicisi oluşturun. Bu, kullanıcı onay kutusunu işaretlediğinde veya işaretini kaldırdığında tetiklenir.

  1. Visual Studio'nun solundaki araç kutusu menüsünü açın. Bir onay kutusu UI öğesini tuval üzerine sürükleyip bırakın.
  2. Tuvaldeki onay kutusunu vurgulayın.
  3. Olayların listesini görüntülemek için sağ paneldeki özellikler penceresinde sarı şimşek simgesine tıklayın. Aşağı kaydır Kontrol EdildiDeğiştirildi Etkinlik.
  4. yanındaki boş alana tıklayın Kontrol EdildiDeğiştirildi Etkinlik. Bu, olayı işlemek için otomatik olarak yeni bir işlev oluşturacaktır. İşlev, uygulamanın arka plandaki kod bölümünde oluşturulacaktır. .cs dosyası.
    özelgeçersizcheckBox1_CheckedDeğiştirildi(nesne gönderici, EventArgs e)
    {
    // Kodunuz burada
    }

Arkasındaki Kodu Kullanan Olay İşleyicileri

Arkasındaki kodda yeni bir işlev oluşturun ve bunu tuvaldeki UI öğesine bağlayın.

  1. Tuvalde, bir düğme UI öğesini tıklayıp sürükleyin. Varsayılan olarak, yeni düğmenin adı "button1" olacaktır.
  2. Açık .cs. Varsayılan Windows Form uygulama adını "Form1" olarak bıraktıysanız, bu Form1.cs.
  3. Form1 sınıfının içinde yeni bir işlev oluşturun. Bir olay işleyicisinin yapısını takip ettiğinden ve gönderen ve olay nesnesi için iki parametreye sahip olduğundan emin olun.
    özelgeçersizbutton1_MouseHoverEvent(nesne gönderici, EventArgs e)
    {
    // Kodunuz burada
    }
  4. Olay işleyicisini button1'in fareyle üzerine gelme olayına bağlayın. Bunu yapıcıda yapabilirsiniz.
    halka açık Form1()
    {
    Bileşeni Başlatma();
    Bu.button1.MouseHover += button1_MouseHoverEvent;
    }
  5. Alternatif olarak, tuval üzerindeki özellikler penceresini kullanarak işlevi olaya da bağlayabilirsiniz. Özellikler penceresini açın ve olay işleyicinizin adını MouseHover alanına girin. Bu olabilir button1_MouseHoverEvent.

Birden Çok Olayda Aynı Olay İşleyicisi Nasıl Kullanılır

Aynı işlevi birden çok olaya bağlayabilirsiniz. Bu durumda, çağrılan tek bir işlev varsa FareEtkinliği, bu olay işleyiciyi hem fareyle üzerine gelme hem de fare tıklama olayına ekleyebilirsiniz. Bu daha sonra aynı işlevi kullanarak her iki olayı da işleyecektir.

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

Bir Windows Form Uygulamasında Olayları Kullanma

Windows Forms uygulaması, düğmeler, paneller veya metin kutuları gibi çeşitli UI öğelerini bir tuval üzerine sürükleyip bırakmanıza olanak tanır. Uygulama içinde meydana gelebilecek farklı olaylara bağlı olarak bu UI öğelerine olay işleyicileri ekleyebilirsiniz.

Bir Windows Uygulaması oluşturuyorsanız, kullanıcı arabiriminizin bir parçası olarak görüntü veya grafik de eklemek isteyebilirsiniz. Tuval üzerine farklı türde şekiller çizmenize olanak sağlayacak Graphic, Pen veya Color sınıfı gibi çeşitli C# sınıflarını kullanabilirsiniz.