![]() |
|
[سؤال] كيف يتم فتح نافذة جديدة أو فورم ؟ - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغات البرمجة الاخرى (http://vb4arb.com/vb/forumdisplay.php?fid=4) +--- قسم : قسم البرمجة بتقنية WPF (http://vb4arb.com/vb/forumdisplay.php?fid=86) +--- الموضوع : [سؤال] كيف يتم فتح نافذة جديدة أو فورم ؟ (/showthread.php?tid=3654) الصفحات:
1
2
|
كيف يتم فتح نافذة جديدة أو فورم ؟ - السندبااد - 17-08-14 السلام عليكم ورحمة الله وبركاته
قمت بإضافة نافذة باسم Window1 وأريد عند النقر على الزر الموجود في النافذة الرئيسية أن يتم إظهار هذه النافذة كذلك قمت بإضافة فورم باسم Form1 وأريد عند النقر على الزر الموجود في النافذة الرئيسية أن يتم إظهار الفورم سابقاً كنا نكتب هذا الكود Form1.Show فيتم الفتح لكن لم تنجح مع WPF الملف في المرفقات وشاكر مساعدتكم لدي سؤال آخر : لاحظت أن الحفظ يتم تلقائياً وأنا لا أريد ذلك فما هو الخيار الذي يجب تعديله حتى لا يقوم الفيجوال ستديو بالحفظ تلقائياً ؟ شكراً لكم RE: كيف يتم فتح نافذة جديدة أو فورم ؟ - Japan - 17-08-14 السلام عليكم بالنسبة لتشغيل Window من الكود فاستعمل الكود الاتي كود : Dim window As New Window1()كود : Dim _Form As New Form1()اما اذا احتجت لتشغيل احد ادوات Windows Forms فيفضل استعمال Windows Forms Host و هي اداة سهلة و خفيفة و تعطيك امكانية عالية حيث انك يمكن ان تستعمل Windows Forms و Wpf في نفس الوقت مما يعطيك امكانات كبيرة و بالنسبة للمثال الذي وضعته فقد عدلت عليه قليلا وهو موجود في المرفقات RE: كيف يتم فتح نافذة جديدة أو فورم ؟ - السندبااد - 18-08-14 وعليكم السلام ورحمة الله وبركاته ألف شكر لك أخي الكريم على ردك المميز لكن شعرت وأن الأمور أصبحت معقدة فلماذا تعريف المتغير ولماذا كل هذه اللفة والدورة ؟ لدي سؤال بخصوص الكود : لاحظت أن الكود يقوم بإظهار النافذة أكثر من مرة ، يعني لو نقرت على الزر سيفتح النافذة ولو نقرت مرة أخرى سيفتح نفس النافذة مرة ثانية ، وهكذا دواليك .. أنا أريد أنه يفتح النافذة مرة واحدة فقط وبدون أن تصبح النافذة في المقدمة ، يعني يفتح النافذة ويبقى بإمكاني العودة للنافذة الرئيسية ؟ سؤال آخر : كيف يتم استعمال Windows Forms Host ؟ هل لك أن تشرح لنا ذلك ؟ RE: كيف يتم فتح نافذة جديدة أو فورم ؟ - السندبااد - 22-08-14 أضف ملاحظة أخرى على كود إظهار النافذة الذي وضعته حضرتك
لو قمت بتركيز النافذة للوسط أي وسط النافذة الرئيسية فعند استدعاءها بالكود الذي وضعته حضرتك لن تظهر وسط النافذة الرئيسية التي تم الاستدعاء من خلالها .. نحن بانتظار الأخوة للإجابة على هذا التساؤل والتساؤلات الأخرى الموجودة في المشاركة تحياتي لكم RE: كيف يتم فتح نافذة جديدة أو فورم ؟ - الشاكي لله - 23-08-14 السلام عليكم ورحمة الله وبركاته
اولا : الغاء حفظ المشاريع تلقائيا اتبع الصور : ثانيا : ظهور الWindow في منتصف الWindow المستدعي اولا : عليك بتعيين خاصية WindowStartupLocation بقيمة "CenterOwner" للWindow المراد ظهوره في منتصف الWindow المستدعي (سواء في صندوق الخصائص او بالكود كما في الاسفل) ثانيا : في الCode-Behind وعند الاستدعاء نقوم بجعل الخاصية Owner تشير للWindow الذي سيقوم باستدعاء الواجهة -فقط اضافة بسيطة في كود الاخ japan :- PHP كود : Dim window As New Window1()ثالثا : ظهور النافذة لأكثر من مرة لا اعلم ربما تكون جديد على الدوت نت ولكن الامر واضع جدا وهي الكلمة New التي تقوم بإنشاء Instance للWindow ، لذلك عليك بإنشاء المتغير خارج الsub PHP كود : Window1 wnd = new Window1();وبتالي مهما ضغطت على الزر ستظهر نفس النافذة ولن يتم انشاءها مرة اخرى رابعا : بالنسبة ل Windows forms host انا لم استعملها شخصيا ولا اضن اني راح استعملها / لاني انتقلت ل WPF بغرض انشاء تصماميم لا محدودة اما طريقة الاستخدام فهي بسيطة ، قم باضافتها من صندوق الادوات ثم اسحب اداة تابعة للWinForm وافلتها داخلها RE: كيف يتم فتح نافذة جديدة أو فورم ؟ - السندبااد - 23-08-14 وعليكم السلام ورحمة الله وبركاته
1- بالنسبة للحفظ التلقائي : تم وشكراً لك.جزاك الله خيراً أستاذنا الحبيب (الشاكي لله) ، وبعد : 2- بالنسبة لظهور النافذة : تمام ولكن لماذا الأمور معقدة بهذا الشكل ؟ لماذا لا يكفي أن نكتب window.Show وكفى ؟ 3- بالنسبة لظهور أكثر من نافذة : الأمر ShowDialog يظهر نافذة واحدة ولكنه يمنعك من العودة للنافذة الرئيسية إلا بعد غلق النافذة التي فتحتها عن طريق هذا الأمر إذا أردنا أن يسمح لنا بالعودة للنافذة الرئيسية أظن أنه يمكن الاستفادة من الأمر Show ولكن يجب وضع حيلة كمتغير مثلاً نضع له قيمة عند تشغيل النافذة وهذه القيمة تتغير عند غلقها مثلاً في مديول وضعت هذا المتغير العام : كود : Public WinEnb As Booleanعند إقلاع النافذة الرئيسية جعلت قيمته هكذا : كود : WinEnb = Trueوعند النقر على زر فتح النافذة الثانية وضعت هذا الكود : كود : Dim dialogBox As New Window1()كود : WinEnb = True4- بالنسبة للـ Windows forms host : لم أفهم ما فائدتها إذا كانت كل أدوات Windows forms متوفرة في WPF ؟ ألف شكر لك أستاذنا الحبيب
RE: كيف يتم فتح نافذة جديدة أو فورم ؟ - الشاكي لله - 23-08-14 إقتباس :- بالنسبة لظهور النافذة : تمام ولكن لماذا الأمور معقدة بهذا الشكل ؟ WPF تتبع طريقة السي شارب في ادارة الذاكرة والObject في WinForm ومع vb.net تستطيع الوصول للform بسهولة كما ذكرت (Form1.Show) السبب في ذلك هو ان vb.net تقوم بانشاء Instance للForm في الذاكرة لذلك يصبح الفورم جاهزا للتعامل الفوري ولكن هذه الطريقة تتعب البرنامج جدا فما بالك ببرنامج كبير ب WPF !!! سيصبح البرنامج ابطأ من السلحفاة .. تم مناقشة هذا الموضوع في هذا الرابط ، ارجوا الاطلاع عليه : هنا RE: كيف يتم فتح نافذة جديدة أو فورم ؟ - السندبااد - 24-08-14 اخي الحبيب الشاكي لله :
كفيت ووفيت جزاك الله خيراً وبارك بك وبعلمك RE: كيف يتم فتح نافذة جديدة أو فورم ؟ - السندبااد - 05-09-14 السلام عليكم ورحمة الله وبركاته
حاولت جعل النافذة الرئيسية MainWindow نافذة MDI بحيث تحتضن بقية النوافذ لكن لم أجد في الخصائص أي شيء له علاقة بالـ MDI فهل لكم أن ترشدونا أيها الأحباب للطريقة ؟ RE: كيف يتم فتح نافذة جديدة أو فورم ؟ - الشاكي لله - 06-09-14 في WPF (افتراضيا) لايوجد هناك مفهوم "الواجهة متعددة المستندات" إقتباس :WPF has no concept of MDI applications. لكن توجد مكتبة تقوم بذلك https://wpfmdi.codeplex.com/ لكن ان اردت رايي الشخصي .. ارى ان الواجهات المعاصرة امثال واجهات windows 8 والميترو لاتعتمد على هذا النوع من الواجهات فقد صارت تعتمد كثيرا على الtab control او الdockable window وانا شخصيا احب الواجهات المعاصرة لذلك ابتعد عن mdi |