السلام عليكم ورحمه الله وبركاته
اريد كتابة اجراء صغير Sub يقوم بتفعيل مجموعة معينة من الادوات وتعطيل مجموعة اخرى محددة من الادوات ( والعكس ايضا ) حسب ما اريد
اي التحكم بالخاصية Enabled لمجموعة من الادوات برمجيا ،
كتبت الاجراء التالي :
Sub Enable(ByVal Enabled As Boolean) With Me Dim Ctrl As Control For Each Ctrl In Me.Controls Ctrl.Enabled = Enabled Next .btnSave.Enabled = Not Enabled .btnCancelEdit.Enabled = Not Enabled Dim grpCtrl As Control For Each grpCtrl In grpData.Controls grpCtrl.Enabled = Not Enabled Next End With End Sub
الآن اذا استدعيت الاجراء السابق في حدث التحميل مثلا بالشكل التالي :
Enable(True)
يظهر كل شيء كما أريد الادوات التي اسندت المتغير Enabled لها تم تمكينها بالفعل ، والاخرى التي اسندت Not Enabled اليها تم الغاء تفعيلها ،
لكن اذا استدعيتها بالعكس :
Enable(False)
النتيجة لن تكون كما اريد ، بل ستكون باختصار عدم تمكين كل الادوات !! مع انني وضعت المعامل Not قبل المتغير Enabled ولكن للأسف !
فأين الخطأ في الكود السابق ؟ وهل يمكن كتابة الكود السابق بطريقة صحيحة ؟ وماذا عن استخدام الدالة IIF في هذه الحالة ؟ كيف يكون ؟

