PDA

View Full Version : سوال: رويداد activecontrolchanged براي form ؟؟!!



mahboube
سه شنبه 02 شهریور 1389, 10:38 صبح
سلام دوستان
من ميخام يه تابع وقتي كه activecontrol فرمم عوض ميشه اجرا كنم.آيا فرم event ي براي اينكا داره?
در واقع يه چيزي تو مايه هاي activecontrolchange!
يا بايد با delegate ها خودم ايجاد كنم ؟
ممنون.

mahboube
سه شنبه 02 شهریور 1389, 11:46 صبح
سلام دوستان
من ميخام يه تابع وقتي كه activecontrol فرمم عوض ميشه اجرا كنم.آيا فرم event ي براي اينكا داره?
در واقع يه چيزي تو مايه هاي activecontrolchange!
يا بايد با delegate ها خودم ايجاد كنم ؟
ممنون.

كسي ميدونه ميشه متدي كه وجود نداره رو ايجاد كردۀمثلا باdelegate ها؟
در واقع من ميخوام براي textchange مربوط به Textbox هام يك تابع رو اجرا كنم ولي نميخوام تو همه ي textbox هام بنويسمش!ميخام يه جايي تو فرمم بنويسم كه براي textbox ي كه active هست اجراش كنه ولي نمي دونم تو چه رويدادي از فرم ميشه نوشتش كه با تغيير activecontrol‌م اجرا شه؟؟
كسي نظري داره؟؟؟
ممنون.

mahboube
سه شنبه 02 شهریور 1389, 13:19 عصر
كسي ميدونه ميشه متدي كه وجود نداره رو ايجاد كردۀمثلا باdelegate ها؟
در واقع من ميخوام براي textchange مربوط به Textbox هام يك تابع رو اجرا كنم ولي نميخوام تو همه ي textbox هام بنويسمش!ميخام يه جايي تو فرمم بنويسم كه براي textbox ي كه active هست اجراش كنه ولي نمي دونم تو چه رويدادي از فرم ميشه نوشتش كه با تغيير activecontrol‌م اجرا شه؟؟
كسي نظري داره؟؟؟
ممنون.

خب من ازدوتا رويداد Keyup (براي حركت كردن با tab رو ي كنترل ها)و mouseleave‌ (براي تغيير كنترل اكتيو با موس) فرم استفاده كردم و فكر كنم جواب ميده.

amirh_karimifar
سه شنبه 02 شهریور 1389, 13:22 عصر
خب اون عملی که میخوای انجام بشه رو توی رویداد validated یا enter تکست باکس بذار .

mahboube
سه شنبه 02 شهریور 1389, 13:24 عصر
خب اون عملی که میخوای انجام بشه رو توی رویداد validated یا enter تکست باکس بذار .
دستون درد نكنه!من 500 تا تكست باكس داشته باشم تو 500تاش بزارم؟؟!!!!
با دوتا رويداد بالا درست ميشه.

amirh_karimifar
سه شنبه 02 شهریور 1389, 13:25 عصر
یعنی اگر هم می خوای چیزی رو delegate کنی . با همین دو تا رویدادDelegate کن .
--------------------
می تونی برای یکی از تکس باکسات بنویسی . برای 499 تای دیگه هم اونو dlegate کنی . جواب میده .

mahboube
سه شنبه 02 شهریور 1389, 13:32 عصر
یعنی اگر هم می خوای چیزی رو delegate کنی . با همین دو تا رویدادDelegate کن .
--------------------
می تونی برای یکی از تکس باکسات بنویسی . برای 499 تای دیگه هم اونو dlegate کنی . جواب میده .

نمي خوام رو textbox كد بنويسم.چون از فرم orginal براي همه فرمام استفاده مي كنم.
با دوتا رويداد بالا درس ميشه!گيرداديا!!!
ولي پيشنهاد خوبي بود شايد مجبور شم از دوتاش استفاده كنم چون يه چيزيو show ميكنم حالا نميدونم كجا همونو hide !!!
مرسي:قلب:
--------------------

یعنی اگر هم می خوای چیزی رو delegate کنی . با همین دو تا رویدادDelegate کن .
--------------------
می تونی برای یکی از تکس باکسات بنویسی . برای 499 تای دیگه هم اونو dlegate کنی . جواب میده .

يه سوال:منظورتون از تو بقيش delegate كني چيه؟
يعني بالاخره بايد تو textbox اي ديگم فراخواني كنم delegate م رو ديگه؟

amirh_karimifar
سه شنبه 02 شهریور 1389, 17:01 عصر
آره . ولی من اگر خودم بودم با یک foreach این تابع رو توی همه ی 500 تا delegate میکنم .
اگر خواستی بگو کدشم برات بذارم .

mahboube
سه شنبه 02 شهریور 1389, 17:07 عصر
آره . ولی من اگر خودم بودم با یک foreach این تابع رو توی همه ی 500 تا delegate میکنم .
اگر خواستی بگو کدشم برات بذارم .
اگه بزاري كه ممنون ميشم.
من الان اين كد رو يك بار تو فرم orginal م گذاشتم و براي همه ي فرما داره اجرا ميشه.
ولي اگر كدتو بزاري ممنون ميشم.

amirh_karimifar
سه شنبه 02 شهریور 1389, 17:17 عصر
البته این کد من برای کنترلای یک فرم جواب میده . ولی میدارم برا اونایی که بخوان رو کنترلشون این کارو بکنن .
به جای <Function_name> باید نام اون تابع که شامل اون کداست رو قرار بدید .


foreach ( Control obj in this.Controls){
if ( obj is TextBox){
obj.Validated +=new EventHandler(<Function_name>);
}
}(

mahboube
سه شنبه 02 شهریور 1389, 17:22 عصر
البته این کد من برای کنترلای یک فرم جواب میده . ولی میدارم برا اونایی که بخوان رو کنترلشون این کارو بکنن .
به جای <Function_name> باید نام اون تابع که شامل اون کداست رو قرار بدید .


foreach ( Control obj in this.Controls){
if ( obj is TextBox){
obj.Validated +=new EventHandler(<Function_name>);
}
}(

ممنون.اين كد رو كجا بايد بنويسم؟كه براي هر activcontrolchange اجراشه؟

amirh_karimifar
سه شنبه 02 شهریور 1389, 17:26 عصر
نه اینو تو formload بنویسی به نظرم خیلی بهتره . چون حتما اجرا میشه .