PDA

View Full Version : Event Handler



regbyte
جمعه 24 اسفند 1386, 14:17 عصر
سلام

من یه برنامه نوشتم که تعداد زیادی فرم داره و در هر فرم تعدادی کنترل و یک دکمه SAVE وجود داره ، می خوام تا وقتی کنترلهای روی فرم تغییر نکردند دکمه SAVE غیر فعال باشه و وقتی که تغییری در آنها رخ داد دکمه SAVE فعال بشه.

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

در Form Load:


ForEach ctrl As Control InMe.aGroupBox.Controls
SelectCase ctrl.GetType.ToString
CaseGetType(TextBox).ToString
tbMain = ctrl
AddHandler tbMain.TextChanged, AddressOf stateEventHandler
CaseGetType(CheckBox).ToString
chkMain = ctrl
AddHandler chkMain.CheckedChanged, AddressOf stateEventHandler
.
.
.
.
.
EndSelect
Next


و



PrivateSub stateEventHandler(ByVal sender AsObject, ByVal e As EventArgs)
IfNot btnSave.Enabled Then btnSave.Enabled = True
EndSub



چون تعداد فرمها زیاد است؛ چطوری می تونم این رو به صورت یک Procedure در بیارم و فقط اون رو در Form Load فرمهام فراخونی کنم؟(آیا روش بهتری وجود داره؟)

لطفا راهنمایی کنید.

ghafoori
جمعه 24 اسفند 1386, 16:44 عصر
دوست عزیز بهتر است یک فرم پایه در برنامه خودتان ایجاد کنید که حاوی این تابع و رویدا باشند سپس تمام فرم های خود را از این فرم به ارث ببیریدتا تمام فرمها دارای این تابع و رویداد باشند

regbyte
جمعه 24 اسفند 1386, 20:14 عصر
با تشکر

اما بنا بر دلایلی نمی خوام اینکار رو بکنم.

آیا راه حل دیگری وجود دارد؟