Windows Forms'dagi voqealar. Voqealar shakllari
Oxirgi yangilangan vaqti: 31.10.2015
Windows Forms-da foydalanuvchi bilan muloqot qilish uchun voqea mexanizmi ishlatiladi. Windows Forms-dagi voqealar C# - da standart voqealarni ifodalaydi, faqat ingl.komponentlarga qo'llaniladi va C# - dagi voqealar bilan bir xil qoidalarga bo'ysunadi. Biroq, Windows Forms-da voqea ishlovchilarini yaratish hali ham ba'zi xususiyatlarga ega.
Avvalo, WinForms-da ba'zi bir standart tadbirlar to'plami mavjud bo'lib, ular asosan barcha ingl. Ayrim elementlar o'z voqealarini qo'shadilar, ammo ular bilan ishlash tamoyillari o'xshash bo'ladi. Elementning barcha voqealarini ko'rish uchun biz ushbu elementni grafik dizayner maydonida tanlashimiz va shakllar panelidagi voqealar yorlig'iga o'tishimiz kerak. Misol uchun, shakl voqealari:
Ishlovchini qo'shish uchun siz voqea nomi yonidagi bo'sh maydonni ikki marta bosishingiz mumkin va bundan keyin Visual Studio avtomatik ravishda voqea ishlovchisini ishlab chiqaradi. Misol uchun,
Load hodisasi uchun ishlovchini yaratish uchun bosing:
Va bu maydon voqea Load işleyicisi usuli nomini ko'rsatadi. Odatiy bo'lib, Form1_Load deb ataladi.
Form1 formasi kodi fayliga kirsak.cs, biz avtomatik yaratilgan Form1_Load usulini ko'ramiz:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
Form1_Load ishlovchisida kod har bir shaklni yuklashda ishlaydi.
Odatda, turli xil vizual komponentlarning ishlovchilarining ko'pchiligi ikkita parametrga ega: yuboruvchi - hodisani boshlagan ob'ekt va voqea ma'lumotlarini saqlaydigan argument (bu holda EventArgs e).
Lekin bu faqat ishchi. Shu tarzda yaratilgan bir xil ishlovchini Qo'shish Form1 faylida amalga oshiriladi.Designer.cs:
namespace HelloApp
{
partial class Form1
{
private System.ComponentModel.IContainer components = null;
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
private void InitializeComponent()
{
this.SuspendLayout();
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(284, 261);
this.Name = "Form1";
// добавление обработчика
this.Load += new System.EventHandler(this.Form1_Load);
this.ResumeLayout(false);
}
}
}
Ishlovchini qo'shish uchun standart sintaksisi C#: this ishlatiladi.Load += new System.EventHandler (this.Form1_Load)
Shuning uchun, agar biz shu tarzda yaratilgan ishlov beruvchini olib tashlashni istasak, biz faqat Form1 da ariza kodidan usulni olib tashlashimiz kerak.cs, shuningdek, ushbu faylga ishlov beruvchini qo'shishni olib tashlash.
Biroq, biz voqea ishlovchilarini va dasturiy ta'minotni, masalan, ariza dizaynerida qo'shishimiz mumkin:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace HelloApp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Load += LoadEvent;
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void LoadEvent(object sender, EventArgs e)
{
this.BackColor = Color.Yellow;
}
}
}
Bundan oldin yaratilgan Form1_Load protsessoriga qo'shimcha ravishda, bu erda yana bir form boot handler ham qo'shilgan: this.Load + = LoadEvent;, fon sifatida sariq rangni o'rnatadi.
Do'stlaringiz bilan baham: |