Application.DoEvent() در سی شارپ به چه منظور استفاده میشود ؟ + پروژه
در سی شارپ یک متد به اسم Application.DoEvent() وجود دارد که شاید شما هم ان را در برخی از پروژه های دیده باشید
ولی تا کنون دقت کرده اید که این متد به چه منظوری در سی شارپ تولید شده است ؟!
در زیر شما را با یک مثال با طرز کار این متد آشنا میکنیم
یک پروژه ویندوز فرم ایجاد کنید و بعد از افزودن یک label به ان در اونت لود ان کد زیر را بنویسید
private void Form1_Load(object sender, EventArgs e)
{
label1.Visible = false;
}
و سپس دو باتن با نام های button1 و button2 ایجاد و در اونت کلیک انها کد ها را به این شکل بنویسید
//button1_Click
private void button1_Click(object sender, EventArgs e)
{
label1.Visible = true;
// Application.DoEvents();
System.Threading.Thread.Sleep(3000);
label1.Visible = false;
}
و کلیک باتن دوم :
//button_2 Click
private void button2_Click(object sender, EventArgs e)
{
label1.Visible = true;
Application.DoEvents();
System.Threading.Thread.Sleep(3000);
label1.Visible = false;
}
همان طور که میبینید در کلیک اول Application.DoEvent() غیر فعال و در کلیک دوم این متد فعال است
در زیر میتوانید به صورت عملی و دانلود پروژه ان تفاوت این دو را مشاهده نمائید
و اما تفاوت این دو با هم در چیست ؟!
وقتی شما کاری را به یک باتن یا یک تابع محول میکنید و ان را فراواخی میکنید
سی شارپ ان را اجرا و سپس بعد از اتمام کار باتن یا تابع نتیجه و تغییرات را به شما نمایش میدهد
ولی در صورتی که از Application.DoEvent() استفاده کنید
میتوانید نتیجه و خروجی تابع را مرحله به مرحله و طی انجام ترتیبی در فرم ملاحظه کنید
برای دانلود پروژه این آموزش اینجا کلیک کنید
حجم : 43 کیلوبایت
رمز فایل : www.hypersource.ir
ولی تا کنون دقت کرده اید که این متد به چه منظوری در سی شارپ تولید شده است ؟!
در زیر شما را با یک مثال با طرز کار این متد آشنا میکنیم
یک پروژه ویندوز فرم ایجاد کنید و بعد از افزودن یک label به ان در اونت لود ان کد زیر را بنویسید
private void Form1_Load(object sender, EventArgs e)
{
label1.Visible = false;
}
و سپس دو باتن با نام های button1 و button2 ایجاد و در اونت کلیک انها کد ها را به این شکل بنویسید
//button1_Click
private void button1_Click(object sender, EventArgs e)
{
label1.Visible = true;
// Application.DoEvents();
System.Threading.Thread.Sleep(3000);
label1.Visible = false;
}
و کلیک باتن دوم :
//button_2 Click
private void button2_Click(object sender, EventArgs e)
{
label1.Visible = true;
Application.DoEvents();
System.Threading.Thread.Sleep(3000);
label1.Visible = false;
}
همان طور که میبینید در کلیک اول Application.DoEvent() غیر فعال و در کلیک دوم این متد فعال است
در زیر میتوانید به صورت عملی و دانلود پروژه ان تفاوت این دو را مشاهده نمائید
و اما تفاوت این دو با هم در چیست ؟!
وقتی شما کاری را به یک باتن یا یک تابع محول میکنید و ان را فراواخی میکنید
سی شارپ ان را اجرا و سپس بعد از اتمام کار باتن یا تابع نتیجه و تغییرات را به شما نمایش میدهد
ولی در صورتی که از Application.DoEvent() استفاده کنید
میتوانید نتیجه و خروجی تابع را مرحله به مرحله و طی انجام ترتیبی در فرم ملاحظه کنید
برای دانلود پروژه این آموزش اینجا کلیک کنید
حجم : 43 کیلوبایت
رمز فایل : www.hypersource.ir