مرجع تخصصی زبان Csharp
جستجو

ایجاد یک شی و کار با event رویداد ها در سی شارپ csharp بخش دوم

در این پست قصد داریم تا نحوه صحیح ایجاد یک شی از نوع Button را ارائه بدیم:

در پست قبلی موارد 1 و  2 و 3 را تکمیل کردیم و حال رسیدیم به مبحث 4 که مربوط به ایجاد رویداد است.

کارهایی که قراره انجام بشه:

  1. ایجاد یک تابع برای فراخوان دستورات (ساخت شی)
  2. صدا زدن تابع برای اجرای دستورات
  3. تعریف یک شی از نوع کلید یا Button
  4. تعریف رویداد یا Event برای کلید 
    1. برای مثال ایجاد رویداد Click روی این Button و نمایش پیغام

در پست قبلی ابتدا یک تابع ساختیم و درون آن یک شی جدید را همراه با تعریف Properties  ها ایجاد کردیم، حال بریم سراغ روش های تعریف رویداد های مختلف:

📌روش اول (روش سنتی و معمول):

void C_Button()
{
    Button btn = new Button
    {
        Size = new Size(150, 46),
        Location = new Point(61, 61),
        Name = "btn1",
        Text = "کلید سفارشی"
    };      
    this.Controls.Add(btn);

    btn.Click += Btn_Click; // این خط کد مربوط به تعریف رویداد کلیک است و به تابع پایین اشاره می کند
}
private void Btn_Click(object? sender, EventArgs e) { MessageBox.Show("کلید زده شد."); }

در این روش نام شی (btn) همراه با رویداد Click تعریف می شود سپس از += و در انتها اشاره به تابعی دارد که می تواند این رویداد را هندل کند. در تابع مورد نظر که هم می توان آن را جدید ساخت و یا اشاره به یک تابع از قبل تعریف شده نماید.

 

📌روش دوم:

در این روش که یک روش صحیح و البته بروزی نیز می باشد، دیگر نیازی به تعریف تابع نیست و دستور مورد نظر  برای هر رویداد مستقیما تعریف می شود.

    void C_Button() //تابع مربوط به ایجاد و خلق کلید
    {
        Button btn = new Button
        {
            Size = new Size(150, 46),
            Location = new Point(61, 61),
            Name = "btn1",
            Text = "کلید سفارشی"
        };      
        this.Controls.Add(btn);

        //تعریف هندل رویداد کلیک
        btn.Click += (sender, e) => 
        { 
            MessageBox.Show("دکمه کلیک شد!"); 
        };
    }

در این روش که  به صورت لامبدا تعریف شده است، مستقیما رویداد و نحوه هندل کردن آن درون همان تابع تعریف می شود.

مشاهده نتیجه:

 

تعداد صفحات: 1
💬 نظرات کاربران
💬ثبت نام کاربران
💬ورود کاربران