السلام عليكم ورحمة الله وبركاته
كيف يمكن عمل Disable لبعض الأزرار في شريط الأدوات أو القوائم في النافذة الأم من خلال تعاملي معها من النافذة الأبن
السلام عليكم ورحمة الله وبركاته
كيف يمكن عمل Disable لبعض الأزرار في شريط الأدوات أو القوائم في النافذة الأم من خلال تعاملي معها من النافذة الأبن
مرر الكائنات من النافذة الأم إلى النافذة الإبن في مُشيّد الإبن Constructor بهذه الطريقة:
Child^ ch= gcnew Child(this->button2);
في السطر السابق مررت زر موجود في النافذة الإم، مررته لمشيد النافذة الإبن، بحيث عليك التعديل في مشيد الإبن الافتراضي ليكون بهذه الطريقة:
Child(System::Windows::Forms::Button^ b)
{
InitializeComponent();
ParObj = b;
}
لا تنسَ إضاقة عضو في كلاس الإبن بإسم ParObj .
بعدها يمكنت عمل Disabling للزر في النافذة الإم عن طريق النافذة الإبن بهذه الطريقة:
ParObj->Enabled=false;
المثال مرفق.
تم تعديل هذه المشاركة بواسطة A.S Hack في 25 يناير 2013 في 17:04
" إن الله كتب الإحسان على كل شيء"
::
الإرادة ... تحقق السيادة.
السلام عليكم ورحمة الله وبركاته
أخي العزيز : سعيد جداً بردك علي
عفواً أخي حاولت تطبيق هذا الكود ولكني لم أنجح ، وأنا أستخدم Visual studio 2008 وبالتالي المثال لم يفتح معي فهل يمكن توضيح الكود بشكل أكبر
وجزاك الله خيراً
أخي ما الذي لم تفهمه بالضبط؟
هل تعرف المباديء الأساسية في البرمجة الكينونية واستخدام الفصائل Classes ؟ الـ Forms ليست إلا Classes .. تعامل معها بهذه الطريقة.
المسألة لا تتعدى كونها تمرير الكائنات التي تريد التلاعب بها لـ فصيلة class أخرى.
يعني فقط يجب عليك تمرير الكائنات التي تريد التلاعب بها إلى مُشيد فصيلة الابن.
مثلا لدينا فصيلة الأم باسم Form1 وفصيلة الابن Child، ولدينا member في فصيلة الأم باسم button1
الآن أنت تريد التلاعب بالكائن button1 في فصيلة الابن Child ..
كل ما عليك فعله هو التالي:
Child^ object = gcnew Child(button1);
ثم قم بما تشاء بالكائن button1 ومن خلال الفصيلة الابن Child..
أرفقت لك مثالا لإصدارة MS Visual Studio 2008 ...
إذا لا زال الأمر غامضا عاودني مع توضيح الأشياء التي بدت غامضة لك.
وإذا تيّسر لك الأمر فلا تنسَ تقييم الاجابة، حتى يكون لهذا القسم طعما حيّويا في المنتدى.
" إن الله كتب الإحسان على كل شيء"
::
الإرادة ... تحقق السيادة.
السلام عليكم ورحمة الله وبركاته
أخي العزيز هايل بل أكثر من ممتاز (كود سهل ومفهوم )
وأسلوبك رائع في إحتمال شخص مبتدئ مثلي
ولكن لي سؤال :
هل أقوم بتمرير جميع أزرار شريط الأدوات والقوائم إلى الفورم الأبن
لكن عندما حاولت تمرير أكثر من زر أو قائمة يعطيني رسالة خطأ وهي :
No overloaded function takes 3 arguments
فكيف يمكن تمرير أكثر من عنصر للفورم الأبن ؟
عفواً رجاء توضييح أين أستطيع تقييم الردود فقد بحثت عنها في الصفحة لم أجدها
شكراً جزيلاً
السلام عليكم ورحمة الله وبركاته
الحمد لله أتحلت المشكلة بنفس الطريقة التي أعطتني أياه
أشكرك بشده وجزاك الله خيراً
Router كتب:السلام عليكم ورحمة الله وبركاته
الحمد لله أتحلت المشكلة بنفس الطريقة التي أعطتني أياه
أشكرك بشده وجزاك الله خيراً
الحمد لله :) ، كنت على وشك كتابة رد مفصل لك، الآن أظنك أدركت أن عليك تعديل الدالة المُشيد constructor على حسب عدد البارامترات التي تريد تمريرها، وإضافة members لفصيلة المشيد لتخزين قيمة كل بارامتر ممرر. أو يمكنك تمرير مصفوفة objects تحمل كل البارامترات.
بالمناسبة تقييم الاجابات يوجد اسفل كل رد كما ف الصورة أسفله:
ولتحديد رد كإجابة، المفروض أن تجد خيارا لذلك على رأس كل رد.
تم تعديل هذه المشاركة بواسطة A.S Hack في 31 يناير 2013 في 12:36
" إن الله كتب الإحسان على كل شيء"
::
الإرادة ... تحقق السيادة.
السلام عليكم ورحمة الله وبركاته
فعلاً عدلت المشيد constructor ، ونفذت الطريقة التي علمتني أياها .... فوجدت كل شئ تمام
الفضل لله رب العالمين ومن بعده أنت في حل مشكلتي .... جزاك الله خيراً يا أخي
طيب لو انا عايز اتحكم فى الفورم كله يعنى لو انا عندى ادوات كتير على الفورم مش زرار بس اعمل ايه