regbyte
جمعه 24 اسفند 1386, 15: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 فرمهام فراخونی کنم؟(آیا روش بهتری وجود داره؟)
لطفا راهنمایی کنید.
من یه برنامه نوشتم که تعداد زیادی فرم داره و در هر فرم تعدادی کنترل و یک دکمه 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 فرمهام فراخونی کنم؟(آیا روش بهتری وجود داره؟)
لطفا راهنمایی کنید.