a

ABLY مقالات و مطالب مجموعه

آموزش Windows Forms Events Lifecycle

آموزش Windows Forms Events Lifecycle

بسم الله الرحمن الرحیم


در ارتباط

بسم الله الرحمن الرحیم


در ارتباط با Windows Form کتابها و مقالات زیادی وجود که به وسیله آن می توانید به سادگی راه و روش ایجاد یک برنامه را آموزش ببینید. در اینجا یک آموزش در خصوص ترتیب اجرای Event ها وجود دارد، اگر شما lifecycle فرم را بدانید بهتر می توانید اطلاع پیدا کنید که Event های خود را در کدام بخش بنویسید.
در مورد ASP.NET اطلاعات زیادی در خصوص ترتیب اجرا شدن Event ها وجود دارد اما در مورد Windows Form اطلاعات به سختی بدست خواهد آمد.

در ایجا لیست و ترتیب اجرای Event ها را برای شما قرار داده ام

•    Move: این رویداد زمانی اتفاق می افتد که فرم تغییر مکان دهد، اما دهنگام اجرای برنامه هرچند کاربر فرم را تغییر مکاتن نمی دهد ولی این رویداد اجرا می شود.
•    Load: این رویداد در اولین بار قبل از نمایش فرم اتفاق می افتد.
•    VisibleChanged: این رویداد با تغییر Visible اتفاق می افتد.
•    Activated: این رویداد  پس از Activated شدن توسط کد یا کاربر اتفاق می افتد.
•    Shown:این رویداد زمانی اتفاق می افتد که برای اولین بار فرم نمایش داده شده است.
•    Paint: این رویداد در زمانی که فرم ترسیم می شود اتفاق می افتد.
•    Deactivate: این رویداد در زمانی که فرم فوکس خود را از سدت یم دهد و یا فعال نیست اجرا می شود
•    Closing: این رویداد در زمانی که فرم در حال بسته شدن است اتفاق می افتد.
•    Closed: این رویداد در زمانی که فرم در شروع به بسته شدن می کند اتفاق می افتد.


برای آشنایی بیشتر یک مثال را بررسی خواهیم کرد.
برای شروع در Visual Studio یک پروژه Windows Application ایجاد کنید، حال تمامی Event های بالا را که لیست شده است با استفاده از پنجره Properties ایجاد کنید. (برای مشاهده پنجره Properties می توانید بر روی Form کلیک کنید و سپس  کلید F4 فشار دهید).

Properties

با کلیک بر روی هر Event در پنجره Properties کد مربوطه به برنامه اضافه می شود، پس از اضافه شدن تمامی کدهای Event های ما می توانید کدهای زیر را درون Event های ایجاد شده قرار دهید.
قبل از نوشتن کدهای Event ها Form1.Designer.cs را باز کنید و کد زیر را درآن قرار دهید (فقط سه خط مشخص شده را کافی است اضافه کنید)

using System.IO; //این خط باید اضافه کنید
namespace LifecycleDemo

{
    partial class Form1
    {
   StreamWriter sr = new treamWriter("D:\\formevents.txt"); //این خط باید اضافه کنید

        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

         /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)

        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }

            base.Dispose(disposing);

            sr.Close();//این خط باید اضافه کنید

        }
         #region Windows Form Designer generated code
        #endregion

    }

}

حال کدهای زیر را در Form1.cs اضافه کنید (فقط خطهایی که بولد شده است را کافی است اضافه کنید):

public partial class Form1 : Form

    {
        public Form1()

        {
            InitializeComponent();
        }

         private void Form1_Move(object sender, EventArgs e)
        {
            sr.WriteLine("1 - Move event");
        }
        private void Form1_Load(object sender, EventArgs e)
        {
           sr.WriteLine("2 - Load event");
        }
         private void Form1_Activated(object sender, EventArgs e)
        {
            sr.WriteLine("3 - Activated event");
        }
       private void Form1_VisibleChanged(object sender, EventArgs e)
        {
            sr.WriteLine("4 - VisibleChanged event");
        }

        private void Form1_Shown(object sender, EventArgs e)
        {
            sr.WriteLine("5 -Shown event");
        }

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            sr.WriteLine("6 - Paint event");
        }
 
       private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            sr.WriteLine("7 -  FormClosed event");
       }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            sr.WriteLine("8 - FormClosing");
        }

        private void Form1_Deactivate(object sender, EventArgs e)
        {
            sr.WriteLine("9 - Deactivate");
       }

    }


حال برنامه را ذخیره کنید و سپس آن را اجرا کنید، پس از اجرای برنامه در خارج از فرم برنامه یک بار کلیک کنید و سپس درون فرم برنامه کلیک کنید، حال پنجره فرم را ببندید.


حال فایل formevents.txt را که در پوشه برنامه ایجاد شده است باز کنید.

Event

همان طور که در فایل مشاهده می کند تمامی Event ها بر اساس ترتیب اجرا شدن در مدت زمان اجرای برنامه نوشته شده اند.

نظرات یا سوالات خودرا با ما درمیان بگذارید

0912 097 5516 :Phone Number
0713 625 1757 :Phone Number