PDA

View Full Version : سوال: فراخوانی _KeyDown مربوط به TextBox



مهدی رحیم زاده
چهارشنبه 06 خرداد 1388, 08:05 صبح
سلام
من یک سری کد توی _KeyDown یک تکس باکس نوشتم ، حالا می خوام که اونو یک جای دیگه فراخوانی کنم ، چطور میتونم این کار رو انجام بدم؟
با تشکر

seven7777777
چهارشنبه 06 خرداد 1388, 11:09 صبح
دوست عزیز سلام

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

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

mohsen_csharp
چهارشنبه 06 خرداد 1388, 11:35 صبح
کار اصولی این است که دستورات داخل رویداد رو به صورت یک متد درآوری و هر جا که خواستی فراخوانی کنی.

مهدی رحیم زاده
چهارشنبه 06 خرداد 1388, 12:46 عصر
میشه 1 مثال بزنید؟
منظورم کده!

seven7777777
چهارشنبه 06 خرداد 1388, 14:50 عصر
طبق روش اولم من می خواستم مثلا در کمبو باکس هام فقط کلیدهای بالا و پایین کار کنن پس یه تابع مثل زیر نوشتم و اونو تو رویداد KeyPress تک تک کمبوهام صدا زدم :


// 4 Read Only Setting 4 DropDown Lists
private void DropDownKeyPressControll(object sender, KeyPressEventArgs e)
{
Keys pressKey = (Keys)e.KeyChar;
if (pressKey == Keys.Up || pressKey == Keys.Down)
e.Handled = false;
else
e.Handled = true;
}


طبق روش دوم باز هم دو راه داری ، یا دستورات رو طبق اونچه که دوستمون گفتن باید یه تابع کنی و هر جا خواستی استفاده کنی یا اینکه مثلا همین رویداد بالا رو به شکل زیر صدا بزنی :

...
DropDownKeyPressControll(sender,e);
...
برای sender و e باید پارامترهایی از همون جنس ها یا بسازی یا تو هر رویدادی هستی از پارامترهای اون استفاده کنی مثلا تو رویداد تغییر متن تکست باکس هستی ، می تونی sender اونو تو ورودی این تابع که صدا می زنی بیاری .