![]() |
|
[سؤال] عن سبب إغلاق الفورم عند ظهور رسالة - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغات البرمجة الاخرى (http://vb4arb.com/vb/forumdisplay.php?fid=4) +--- قسم : النقاش والأسئلة حول الإصدارات الأحدث من الفيجوال ستوديو (http://vb4arb.com/vb/forumdisplay.php?fid=155) +--- الموضوع : [سؤال] عن سبب إغلاق الفورم عند ظهور رسالة (/showthread.php?tid=45767) الصفحات:
1
2
|
عن سبب إغلاق الفورم عند ظهور رسالة - danti - 23-03-23 السلام عليكم ورحمة الله وبركاته رمضان مبارك علينا وعليكم وكل عام وانتم بخير كيف الحال يا أعضاء المنتدى؟ عندي سؤال أو استفسار هذا الكود: عند الضغط على زر ( تعديل بيانات الزائر ) - كما في الصورة - عند صحة الشرط تظهر رسالة.. وعند الضغط على موافق تختفي الرسالة ويعود لنفس الفورم ( تعديل بيانات الزائر )، (ممتاز). كود : Private Sub Btn_Edit_Click(sender As Object, e As EventArgs) Handles Btn_Edit.Click110011.jpg - MediaFire وهذا الكود نفس الأول مع اختلاف بسيط: ولكن عند الضغط على موافق تختفي الرسالة ويختفي الفورم أيضاً...!!! كود : Private Sub Btn_Banned_Click(sender As Object, e As EventArgs) Handles Btn_Banned.Click110022.jpg - MediaFire لا أدري ما هو السبب؟؟!! RE: عن سبب إغلاق الفورم عند ظهور رسالة - sanyor77 - 26-03-23 هذا الكود يعمل بنفس الطريقة التي كان يعمل الكود الأول، بخلاف أنه يضيف تخفيض النافذة المرادة عند الضغط على زر "موافق". كما يتحقق الكود من صحة الشرط الذي تم تحديده عند الضغط على زر "حظر". إذا كان الشرط صحيحا (أي إذا كان النص المدخل في النص المحدد "Txt_File_Num" فارغا)، سيتم عرض رسالة تطلب من المستخدم وجود رقم ملف المريض لفتح قائمة المنع والسماح. عند عرض الرسالة، سيتم تركيز المؤشر على النص المحدد لتتيح للمستخدم إدخال النص. إذا لم يتم إدخال النص، فسيتم تخفيض النافذة المرادة. الكود النهائي كود : Private Sub Btn_Edit_Click(sender As Object, e As EventArgs) Handles Btn_Edit.Clickيعمل الكود على التحقق من صحة كلا من الشروط الذين تم تحديدهما في الكود الأول والثاني، وعرض رسالة تطلب من المستخدم إدخال النص المطلوب إذا كان الشرط خاطئا. وإذا كان كلا الشروط صحيحا، فسيتم تخفيض النافذة الحالية. RE: عن سبب إغلاق الفورم عند ظهور رسالة - danti - 29-03-23 (26-03-23, 03:30 PM)sanyor77 كتب : هذا الكود يعمل بنفس الطريقة التي كان يعمل الكود الأول، بخلاف أنه يضيف تخفيض النافذة المرادة عند الضغط على زر "موافق". كما يتحقق الكود من صحة الشرط الذي تم تحديده عند الضغط على زر "حظر". إذا كان الشرط صحيحا (أي إذا كان النص المدخل في النص المحدد "Txt_File_Num" فارغا)، سيتم عرض رسالة تطلب من المستخدم وجود رقم ملف المريض لفتح قائمة المنع والسماح. عند عرض الرسالة، سيتم تركيز المؤشر على النص المحدد لتتيح للمستخدم إدخال النص. إذا لم يتم إدخال النص، فسيتم تخفيض النافذة المرادة. الأخ العزيز sanyor77 شكراً على ردك الرائع.. أنت دمجت الكودين في كود واحد. يبدو أنني لم أقم بإيصال الفكرة.. بخصوص الكودين الذَين في ردي.. كلاهما صحيح..كل كود في زر خاص فيه.. وأتعامل معهما بشكل طبيعي. استفساري لماذا الكود الأول عند تنفيذه والضغط على موافق في الرسالة، لا تختفي النافذة.. بينما الكود الثاني عند تنفيذه تختفي النافذة.. أكيد هناك سبب، ولكن عجزت عن فهمه.. RE: عن سبب إغلاق الفورم عند ظهور رسالة - sanyor77 - 29-03-23 عذراً على سوء الفهم. الآن فهمت ما تقصده. لكي نتأكد من تشخيص المشكلة بشكل صحيح، يجب أن نتأكد من أن الكود الذي زودتني به هو الكود الكامل للأزرار المعنية. إذا كان ذلك الكود الكامل، فلا يوجد شيء في الكودين يؤدي إلى إغلاق النافذة (Form) بشكل مختلف. هناك احتمال أن يكون هناك كود آخر في نموذج الفورم أو أحداث أخرى مرتبطة بهذه الأزرار تسبب هذا الاختلاف في التصرف. لمعرفة السبب وراء هذا الاختلاف في تصرف النافذة، يمكنك تتبع أحداث التطبيق بشكل مفصل ومعرفة ما إذا كان هناك أي كود إضافي يتم تنفيذه عند الضغط على الزر. يمكنك استخدام أداة التتبع (Debugger) الموجودة في بيئة التطوير المتكاملة (IDE) لمتابعة تنفيذ الكود والتحقق من الأحداث المحددة التي تسبب إغلاق النافذة. أيضاً يمكنك التحقق من أي أحداث أو كود إضافي مرتبط بزر Btn_Banned.Click قد يتم تنفيذه بعد الاختبار المذكور في الكود المعطى. من خلال التأكد من هذه الأمور، يمكنك تحديد سبب الاختلاف في تصرف النافذة عند تنفيذ الكود الثاني. استخدام أداة التتبع (Debugger) في بيئة التطوير المتكاملة (IDE) مثل Visual Studio يمكن أن يساعدك في تتبع تنفيذ الكود وتحديد الأحداث المسببة لإغلاق النافذة. لاستخدام Debugger، يمكنك اتباع الخطوات التالية:
PHP كود : If Txt_File_Num.Text = "" Then
RE: عن سبب إغلاق الفورم عند ظهور رسالة - danti - 29-03-23 (29-03-23, 10:13 PM)sanyor77 كتب : عذراً على سوء الفهم. الآن فهمت ما تقصده. شكراً جزيلاً.. فعلاً هذا ما قصدته.. أنا حالياً بالعمل ولا استطيع ارسال الكود.. ولكن عند عودتي للمنزل، سوف أقوم باستخدام اداة التتبع.. المشكلة ليست بذلك السوء.. فأنا استخدم المشروع في العمل بشكل طبيعي، ولكن أريد معرفة كل صغيرة وكبيرة في المشروع وما سبب المشكلة حتى لو كانت لا تؤثر على المشروع.. جزاك الله خيراً.. وجعل ما قمت به في موازين حسناتك. RE: عن سبب إغلاق الفورم عند ظهور رسالة - sanyor77 - 30-03-23 أخي، للتأكد، هل كان ذلك الكود بلغة PHP أم لا؟ إذا كان بلغة أخرى مثل C#، يرجى توضيح ذلك حتى أتمكن من توفير الإرشادات الصحيحة. شكرا لحسن تفهمك. يعطيك الف عافية في العمل وأتمنى لك التوفيق في البحث عن الحل للمشكلة. إذا كان لديك أي أسئلة أخرى، لا تتردد في طرحها. سأحاول مساعدتك على أفضل وجه. RE: عن سبب إغلاق الفورم عند ظهور رسالة - danti - 30-03-23 لقد استخدمت أداة التتبع كما في الصورة التالية: 5255.jpg - MediaFire وعند تنفيذ الكود أرسلني إلى كود الشاشة الرئيسية والتي أقوم فيها بفتح نافذة (Form) تعديل بيانات زائر كما في الصورة التالية: 52555.jpg - MediaFire وأعتقد أن المشكلة حينما فتحت النافذة بالكود: كود : V_Edit.ShowDialog()وعندما غيرت الكود إلى: كود : V_Edit.Show()انحلت المشكلة..!! فهل فعلاً المشكلة أنني جعلت النافذة تفتح على أنها مثبته واجبارية Dialog..؟ (30-03-23, 10:30 AM)sanyor77 كتب : أخي، للتأكد، هل كان ذلك الكود بلغة PHP أم لا؟ إذا كان بلغة أخرى مثل C#، يرجى توضيح ذلك حتى أتمكن من توفير الإرشادات الصحيحة. انا استخدم لغة فيجوال بيسك شكراً لك أيضاً على اسلوبك الراقي ورحابة صدرك.. ولا نستغني عن نصائحك وارشاداتك، بارك الله فيك. هذا هو الكود كاملاً كما طلبت: كود : Private Sub Btn_Banned_Click(sender As Object, e As EventArgs) Handles Btn_Banned.Clickطبعاً Frm_BanAndAllow هي نافذة (المنع والسماح). RE: عن سبب إغلاق الفورم عند ظهور رسالة - sanyor77 - 30-03-23 وعليكم السلام ورحمة الله وبركاته، وكل عام وأنتم بخير أيضا. أظن أنني عرفت المشكلة التي تواجهها. كما ذكرت في سؤالك، فإن استخدام ShowDialog يفتح النافذة بشكل مثبت وإجباري (modal). وهذا يعني أن النافذة الحالية لن تتمكن من استلام أي إجراءات حتى يتم إغلاق النافذة المفتوحة عن طريق ShowDialog. في حالة الكود الأول، يتم استخدام Exit Sub فقط للخروج من الدالة الحالية والعودة إلى الكود الذي كان يتم تنفيذه قبل الدالة. لذلك، لن يتم إغلاق النافذة. أما في الكود الثاني، عأما في الكود الثاني، عند استخدام ShowDialog، يتم فتح النافذة Frm_BanAndAllow بشكل مثبت وإجباري، وعند الضغط على موافق في الرسالة، يتم إغلاق النافذة المفتوحة عن طريق ShowDialog والعودة إلى النافذة الأصلية. ومن ثم، يتم استكمال تنفيذ الكود الذي يأتي بعد الكود الذي تم إيقافه بسبب فتح النافذة المثبتة. في حالة الكود الثاني، لا يوجد أي أوامر تلقائية لإغلاق النافذة بعد إغلاق النافذة المثبتة، لكن من الممكن أن يكون هناك كود آخر خارج هذا الكود الذي يؤدي إلى إغلاق النافذة. عند تغيير الكود من ShowDialog إلى Show، لا تعمل النافذة على أنها مثبتة وإجبارية، وبالتالي يمكن للنوافذة الأصلية استلام الإجراءات حتى وإن كانت النافذة الجديدة مفتوحة. وهذا يسمح للنافذة الأصلية بالاستمرار في العمل بشكل طبيعي ولن تغلق تلقائيًا عند الضغط على موافق في الرسالة. بما أنك غيرت الكود إلى Show وقلت أن المشكلة انحلت، فعلى الأرجح فإن استخدام Show بدلاً من ShowDialog كان هو الحل المناسب لمشكلتك. وفي بعض الحالات، قد تكون هذه النوعية من النوافذ المستقلة (non-modal) المفتوحة عبر Show أكثر مناسبة لتطبيقك وتجربة المستخدم. وبشكل عام، استخدم ShowDialog عندما ترغب في منع المستخدم من التفاعل مع النوافذ الأخرى حتى يتم إغلاق النافذة المفتوحة. أما إذا كنت ترغب في السماح للمستخدمين بالتفاعل مع النوافذ الأخرى حتى وإن كانت النافذة الجديدة مفتوحة، فاستخدم Show. أرجو أن يكون هذا الشرح قد ساعدك في فهم الفرق بين استخدام Show وShowDialog وكيف يمكن أن يؤثر ذلك على سلوك النوافذ في تطبيقك. إذا كنت لا تزال تواجه مشكلات أو لديك المزيد من الأسئلة، فلا تتردد في طرحها وسأكون سعيداً لمساعدتك. وفقك الله وجعل ما تعلمته وتعلمه في ميزان حسناتك وأعانك على استخدام معرفتك في مشاريع تفيدك وتفيد المجتمع. إذا كنت بحاجة إلى مزيد من المعلومات حول Visual Basic أو أي موضوع آخر متعلق بالبرمجة وتطوير البرمجيات، يمكنك دائمًا العودة هنا وطرح المزيد من الأسئلة والاستفسارات. نحن هنا لمساعدتك وتوجيهك في تعلم المهارات الجديدة وتطوير معرفتك. أتمنى لك التوفيق في مشاريعك وتطبيقاتك القادمة. إذا كنت بحاجة إلى أي مساعدة إضافية أو إرشادات، فلا تتردد في الاتصال بنا. RE: عن سبب إغلاق الفورم عند ظهور رسالة - danti - 31-03-23 (30-03-23, 03:44 PM)sanyor77 كتب : وعليكم السلام ورحمة الله وبركاته، وكل عام وأنتم بخير أيضا. وعليكم السلام ورحمة الله وبركاته كل عام وانت في صحة وسلامة أخي العزيز sanyor77 كلامك صحيح وتفسيرك منطقي.. فعلاً أنا استخدم ShowDialog إذا أردت اجبار المستخدم على الانتهاء من النافذة المفتوحة أولاً.. شكراً لك على متابعة موضوعي لحل المشكلة.. الآن عرفت الفكرة بشكل عام كما عرفت أداة التتبع.. لم أكن أعرفها ن قبل.. شكراً لك على الدعاء.. اللهم آمين ووفقك الله وأثابك على ما تقوم به من مساعدة الآخرين.. شكراً جزيلاً لك وجزاك الله خير الجزاء.. وبما أنك تطرقت إلى المساعدة.. فلدي استفسار بخصوص تصدير البيانات للوورد وظهور تلك الرسالة المزعجة.. هل تريد أن أطرح الاستفسار هنا.. أم أنشيء موضوعاً جديداً وارفق به مشروع الطباعة؟ RE: عن سبب إغلاق الفورم عند ظهور رسالة - sanyor77 - 31-03-23 لمساعدتك في حل المشكلة المتعلقة بتصدير البيانات إلى Microsoft Word وظهور رسالة مزعجة، يرجى توفير المزيد من المعلومات حول الرسالة المزعجة التي تظهر والخطوات التي تتبعها عند محاولة تصدير البيانات. هذا سيساعدني على فهم المشكلة بشكل أفضل وتوفير إرشادات أو حلول ممكنة. إذا كان بإمكانك إرفاق جزء من الكود الذي تستخدمه لتصدير البيانات إلى Word وأي رسائل خطأ أو استثناء تظهر، فذلك سيكون مفيدًا لتشخيص المشكلة وإيجاد حل مناسب. اقترح نتكلم هنا افضل بنفس الموضوع وشكرا لك |