PDA

View Full Version : سوال: تحریک رخداد



ayyub492
سه شنبه 20 بهمن 1388, 22:51 عصر
باسلام چگونه ما می توانیم بفهمیم که یک رخداد تحریک شده است یا نه؟و چگونه ما می توانیم از تحریک یک روخداد جلوگیری کنیم؟با تشکر

bachebahal_1363
سه شنبه 20 بهمن 1388, 23:13 عصر
اصولا شما برای هر event که رخ می دهد می توانید کدی بنویسید که درواقع یک delegate هست
حال شما اگر برای رخداد delegate تعریف کنید که زمانی که آن event اتفاق افتاد اعمال خواست شما انجام بپذیرد در غیر اینصورت با علاقه نشان ندادن به آن event و یا درواقع ننوشتن هیچ گونه delegate برای آن Event بعد از اتفاق افتادن آن event هیچ عملی صورت نمی پذیرد
برای مثال برای رویداد Onclick یک Button می توان کد زیر را نوشت

private void btnSample_Click (object sender,EventArgs e)
{
MessageBox.Show("Hello World...");
}

و برای تحریک کردن آن رویداد بغیر از کلیک بر روی آن دکمه (برای مثال توسط دکمه دیگری دکمه اول را صدا زد) از تکه کد زیر استفاده می نمائید .


btnSample_Click (sender,e)

gwbasic
چهارشنبه 21 بهمن 1388, 19:01 عصر
اگر منظور شما رویداد های مثلا یک کنترل دات نتی است که کسی دیگر آن را نوشته ، خوب نمی توان جلوی اتفاق افتادن آن را گرفت ولی اگر مانند آنچه دوستمون در بالا گفت کد برای آن ننویسیم یعنی در اصل آن رویداد را هندل نکنیم هیچ اتفاقی نخواهد افتاد.
ولی یک نکته بد نیست گفته شود که هر یک (برای کنترل های دات نت) از این رویدادها دارای یک متدی همنام با آن که با On شروع می شود وجود دارد ( به طور مثال برای Click متد Onclick) که می توان آن را بازنویسی کرد ( البته که باید از آن کلاس مثلا Button ارث ببریم و در داخل آن این متد ها قابل دسترسی هستند) و در نتیجه هر تصمیمی که داشتیم روی آن پیاده کنیم مثلا برای یک TextBox اجازه ندهیم که چیزی غیر از عدد تایپ شود یعنی رویداد keypress هنگام زدن فرضا K اتفاق می افتد اما ما اجازه نمی دهیم که چیزی در Textbox نوشته شود