PDA

View Full Version : نحوه غیر فعال کردن یا قفل کردن کلیه Text Box ها و Command Button ها در فرم با یک دستور



G.hemati
شنبه 07 بهمن 1391, 23:07 عصر
با سلام خدمت تمامی اساتید گرامی
من یه فرمی دارم که تعداد زیادی Text Box و Command Button را دارا میباشد
هنگام بالا آمدن فرم کلیه کنترلها قفل میباشد ،یه باتون مخصوص فعال / قفل کردن این کنترلها قرار دادم که ابتدا پسورد از کاربر رو میخواد و در صورت مجاز بودن کنترلها فعال میشن تا در صورت نیاز ویرایش انجام بشه

حالا میخوام برای غیر فعال کردن یا قفل کردن این کنترلها مجبور نباشم برای هر کنترلی جداگانه یه دستور بنویسم چون در اینصورت تعداد کدها خیلی زیاد میشه
میخواستم ببینم دستوری وجود داره که همه کنترلهای موجود در فرم رو مورد کنترل خودش قرار بده
ممنون

hasanhzd
یک شنبه 08 بهمن 1391, 14:25 عصر
درود
همون موقع باز شدن فرم نوع باز شدن رو مشخص کنید
readonly
edit
add

Abbas Amiri
یک شنبه 08 بهمن 1391, 20:35 عصر
سلام
همانطور که استاد ومعلم خوبمان آقای پیروزمهر بیان کردند روش فوق کوتاه ترین روش است ضمن اینکه ،استفاده از تاپیک زیر هم که کاملا برای این قبیل موضوعات ایحادشده مفید است
http://barnamenevis.org/showthread.php?345075-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%D8%AE%D8%B5%D9%88%D8%B5%DB%8C%D8%AA-Tag-%DA%A9%D9%86%D8%AA%D8%B1%D9%84%D9%87%D8%A7-%D8%AC%D9%87%D8%AA-%D8%A7%D8%B9%D9%85%D8%A7%D9%84-Enabled-Visible-...-%D8%A8%D8%B1%D9%88%DB%8C-%DA%A9%D9%86%D8%AA%D8%B1%D9%84%D9%87%D8%A7%DB%8C-%DB%8C%DA%A9-%D9%81%D8%B1%D9%85-%D8%A8%D8%B5%D9%88%D8%B1%D8%AA-%DA%AF%D8%B1%D9%88%D9%87%DB%8C&highlight=tag

G.hemati
یک شنبه 08 بهمن 1391, 23:05 عصر
با تشکر از اساتید عزیز جناب آقای پیروز مهر و همچنین استاد گرامی جناب امیری
من هر دو روش رو تست کردم ولی موفق به اجرای اونها نشدم ممنون میشم در نمونه پیوست راهنمایی بفرمایین

البته نمونه پیوست مربوط به روش جناب امیری میباشد که من کد مربوطه رو در یک ماژول کپی کردم تادر فرم ، در یه باتون اون رو فراخوانی کنم


Dim ctl As Control

For Each ctl In Me.Controls
ctl.Enabled = False ' or True
Next ctl


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

Abbas Amiri
یک شنبه 08 بهمن 1391, 23:22 عصر
سلام
چرا موقعی که کدها رو درماژول کپی کردید ، به قسمتهایی که قرمز رنگ شده بود توجهی نکردید . این یعنی اشکال در کد
متاسفانه بعضی وقتها تگهای html (که بین این علامات < > قرار میگیرند ) بین کدها پیدا میشوند . آنها پاک کنید تا رفع عیب شود
باید بشکل زیر شود



Sub SetPrpOfCtrlGroup(frm As Form, Action As prpAction, _
varSet, Tag As String, Optional blnInverseOthers As Boolean = False, Optional CtlType As AcControlType = -1)
On Error Resume Next
Dim ctl As Control
Dim TagMatch As Boolean
For Each ctl In frm.Controls
TagMatch = CBool(InStr(Tag, ctl.Tag)) And Not (ctl.Tag = "")
If (ctl.ControlType And CtlType) And TagMatch Then
Select Case Action
Case Enabled
ctl.Enabled = varSet
Case Locked
ctl.Locked = varSet
Case Value
ctl.Value = varSet
Case Visible
ctl.Visible = varSet
Case TabStop
ctl.Visible = varSet
End Select
ElseIf blnInverseOthers Then
Select Case Action
Case Enabled
ctl.Enabled = Not varSet
Case Locked
ctl.Locked = Not varSet
Case Visible
ctl.Visible = Not varSet
Case TabStop
ctl.TabStop = Not varSet
End Select
End If
Next
End Sub