PDA

View Full Version : سوال: فراخوانی رویداد کلیک شئ ای توسط کد



ali_autumnal
یک شنبه 05 مهر 1388, 23:33 عصر
با سلام

کدی در رویداد کلیک باتونی (هایی) نوشته شده.

فرض مسئله:
شئ ها زیاده و همه کدها نوشته شده دیگه نمیشه اینارو (این کدها رو) تو توابع جدا گانه نوشت و هنگام کلیک روی باتون اون رو فراخونی کرد

میخوام وقتی کلیدهای F1...F12 کلیک شد رویداد یکی از این باتون ها اجرا بشه.
مثلا میخوام کلید F2 ثبت اطلاعات رو انجام بده.

واسه این کار این کد رو نوشتم:



private void fbankha_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Escape)
this.Close();
else if (e.KeyCode == Keys.F10)
Application.Exit();
else if (e.KeyCode == Keys.F1)
{
System.Media.SoundPlayer Player = new System.Media.SoundPlayer(Application.StartupPath + "\\login.wav");
Player.Play();
}
else if (e.KeyCode == Keys.F2)
btnsabtenew.Click;
}

در else if آخری پیغام خطا میده و...

میخوام کدهای موجود در باتون (btnsabtenew) اجرا بشه.

Saeed.Masoumi
یک شنبه 05 مهر 1388, 23:58 عصر
ببین شما آرگومانهاشو موقع فراخونی اعمال نکردی
یه چیزی تو این مایه ها:


button1_Click(null,null);

ali_autumnal
دوشنبه 06 مهر 1388, 00:05 صبح
پس اینطور.......

درست شد. الان بدرستی عمل کرد. متشکرم
اصلاح کد:



else if (e.KeyCode == Keys.F2)
btnsabtenew_Click(null, null);

alireza_tavakol
دوشنبه 06 مهر 1388, 10:46 صبح
ببین شما آرگومانهاشو موقع فراخونی اعمال نکردی
یه چیزی تو این مایه ها:


button1_Click(null,null);
شاید با این دستور به صورت مقطعی مشکلت حل بشه ولی باید توجه کرد که این شکلی برنامه نویسی اشتباه است چون ممکن این رویداد از جیگاه های مختلف فایر شود و نیاز به بررسی sender داشته باشیم بهتر از کد زیر استفاده شود

button1_Click(sender, e);
button1_Click(XObject, EventArgs.Empty);

ولی اگه اصلا" نمی خواهی از پارامتر ها استفاده کنی بهتر واسه خوانایی بهتر برنامه از متد مخصوص این کار استفاده کنی

button1.PerformClick();

اَرژنگ
دوشنبه 06 مهر 1388, 11:01 صبح
با سلام

کدی در رویداد کلیک باتونی (هایی) نوشته شده.
فرض مسئله:
شئ ها زیاده و همه کدها نوشته شده دیگه نمیشه اینارو (این کدها رو) تو توابع جدا گانه نوشت و هنگام کلیک روی باتون اون رو فراخونی کرد

لطفا کدی که این چنین خاصیتی را دارد بفرستید، من تا به حال یک چیزی که غیره قابل درست شدن نباشد ندیدم.
مشکل اصلی این است: "کدی در رویداد کلیک باتونی (هایی) نوشته شده."
و اشکالاتی که باهاش روبرر شدید معارب جنبی همان اشتباه است.
به جایه اینکه ۱۰۰ برابر زور بزنیم که که با روشهایه قابل سوال یک دیوار کج را نگه داریم، همان بهتر که از بیخ درستش کنیم، معراب دیگر هم به خودی خود درست میشند.

ali_autumnal
سه شنبه 07 مهر 1388, 19:26 عصر
لطفا کدی که این چنین خاصیتی را دارد بفرستید، من تا به حال یک چیزی که غیره قابل درست شدن نباشد ندیدم.
مشکل اصلی این است: "کدی در رویداد کلیک باتونی (هایی) نوشته شده."
و اشکالاتی که باهاش روبرر شدید معارب جنبی همان اشتباه است.
به جایه اینکه ۱۰۰ برابر زور بزنیم که که با روشهایه قابل سوال یک دیوار کج را نگه داریم، همان بهتر که از بیخ درستش کنیم، معراب دیگر هم به خودی خود درست میشند.


کاملا حرف شما رو تایید می کنم . و متشکرم که متذکر شدید.

واقعیتش ما یه همکار داریم اول کار رو ایشون شروع کردند و این چنین نوشتن و رفتند جلو تا که پروه دست من رسید دیگه کار ازکار گذشته بود... .