كيف تخترق البطاقات البنكية في دقائق، مجانًا وبدون معلم |
يحدُث أن تعمل في برمجة مشروع ما، بلغة C# (السي شارب)، ثم تريد التنقل من Form1 إلى Form2، حيث تضغط على الزر المبَرمج لتنفيذ المهمة، كاتبًا كود التنقل إلى Form2 وغلق Form1:
Form2 f2 = new Form2();
f2.Show();
Form1 f1 = new Form1();
f1.Close(); // f1.Hide();
ثم تفاجؤ أن Form1، ما زال ظاهرًا بالتوازي مع Form2، رغم كتابة كود الإغلاق بطريقة منطقية.
لفهم المشكلة من الأساس، علينا فهم كيف يفكر الـIDE الذي نعمل عليه (Microsoft Visual Studio).
أثناء التنقل بين الـForms، فإن الـIDE يتعامل معهم بمنطق الأم (ParentForm) والأولاد، حيث نأمره بغلق الأم أثناء فتح الولد، وهكذا دواليك. فيُصبح كود التنقل والإغلاق الصحيح، كالتالي:
Form2 f2 = new Form2();
f2.Show();
ParentForm.Hide();
2 تعليقات:
عفوا منك اخي parentForm.Hide(); غير صحيحة ...
يمكنك استخدام this.hide(); فهي الصحيحة..
ولك مني كل الاحترام
شكرا
إرسال تعليق