تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
ماهي افضل طريقة لـ Form Multipage
#1
Sad 
السلام عليكم ورحمة الله


انا ومنذ بداياتي في البرمجة لازلت استخدم طريقة لاأعلم ان كانت هناك افضل منها لعرض اكثر من page في نفس الفورم

يعني مثلا هذا البرنامج الي صممته عام 2011 ، لما اضغط على تاب Section (الي اقصى اليسار) مثلا راح تطلع لي Panel :




الان لو ان المستخدم ضغط على تاب Post راح يتم اخفاء SectionPanel وجعله Visible = false .. ليس فقط الSectionPanel بل كل الPanel في البرنامج راح يصيرون مخفيين

ثم بعد ان اجعل جميع الPanels مخفيين ، اقوم بجعل visible = true للPostPanel





ولكن مشكلة هذه الطريقة انها متعبة وقت التصميم .. حيث يجب عليك وضع الPanel فوق panel --- والpanel التي تريد التعديل عليها تجعلها BringToFront وايضا عليك ربط كل Panel بزرها


الان انا استخدم هذه الطريقة منذ زمن بعيد ولم اغيرها حتى الان (طبعا بالنسبة لwindows forms)

اما في wpf فيوجد البديل وهو Pages .



ولكن انا اتحدث عن Windows forms هل جرب احدكم طريقة اخرى اسهل وافضل ؟ .. ام انكم جميعا تستخدمون هالطريقة ههههه
الرد }}}
تم الشكر بواسطة:
#2
سؤال مهم جداً ... بارك الله فيك على طرحه هنا في المنتدى Smile
أنا في WinForms استخدم نفس الطريقة المملة و المتعبة فعلاً اثناء البرمجة.

بالإضافة إلى, هل لديكم معلومة حول: (كيف يمكن عمل تحليل -Analysis- لكود المشروع)؟ أي كيف يمكن معرفة هل أداء كود المشروع بطئ أم سريع؟
أعتقد بأنك كنت تريد الوصول إلى هذه النقطة أيضاً من خلال طرحك لسؤالك Smile


السلام عليكم
الرد }}}
تم الشكر بواسطة: الشاكي لله
#3
(22-01-14, 01:25 PM)hoob computer كتب : سؤال مهم جداً ... بارك الله فيك على طرحه هنا في المنتدى Smile
أنا في WinForms استخدم نفس الطريقة المملة و المتعبة فعلاً اثناء البرمجة.

بالإضافة إلى, هل لديكم معلومة حول: (كيف يمكن عمل تحليل -Analysis- لكود المشروع)؟ أي كيف يمكن معرفة هل أداء كود المشروع بطئ أم سريع؟
أعتقد بأنك كنت تريد الوصول إلى هذه النقطة أيضاً من خلال طرحك لسؤالك Smile


السلام عليكم

إن كنت تقصد هذه



فلم اجربها ولااعلم وظيفتها اصلا خخ

انا جديد على 2012 وهناك ميزات كثيرة اريد اكتشفها بس اخلي من واروح لمن هههه


--

المهم بالنسبة لهذا الموضوع هو بالفعل ممل جداا

اكثر شيئ يمللني هو لما يدخل الPanel داخل Panel

يعني يصير child ، رغم انه المفروض يكون panel رئيسي ولكن بفعل التحريك الخاطئ يدخل في الpanel

كم اكرهها هذه الحالة.


لابد ان نقوم بتمصيم اداة تعمل وقت التصميم وشكلها مثل tabControl

ولكن هي tabcontrol فقط وقت التصميم ـ وعند الrun time تختفي وتظهر الpanel عادية

--

لكن هناك سؤال اخر يطرح نفسه (كما اشرت اخي ) الاحظ كل مازادت الpanel زاد ثقل البرنامج
الرد }}}
تم الشكر بواسطة: hoob computer
#4
ولهذا أحب اريح دماغي و أحول على WPF ههههه
فيها Customization مفيد جداً و لكنها تعتمد على DirectX في أداءها.

و بالفعل كثرة الـ Panel في المشروع تثقل عمله و لا أعرف لماذا؟
هل من إقتراحات حول أداء البرنامج عدا أداة Analysis ؟



السلام عليكم
الرد }}}
تم الشكر بواسطة: الشاكي لله
#5
(22-01-14, 05:58 PM)hoob computer كتب : ولهذا أحب اريح دماغي و أحول على WPF ههههه
فيها Customization مفيد جداً و لكنها تعتمد على DirectX في أداءها.

و بالفعل كثرة الـ Panel في المشروع تثقل عمله و لا أعرف لماذا؟
هل من إقتراحات حول أداء البرنامج عدا أداة Analysis ؟



السلام عليكم

صحيح wpf تريح راسك

لكن العمل معها يحتاج وقت اطول لأنك محتاج تصمم كل شي

اقرب مثال هو الtreeview حقها ، لازم تسوي Customization حقه (تضيف stackpanel + image) عشان يصير node


ولكني اضن ان الwpf لاتعتبر كبديل للwindows form فلا زلت احبها في بعض الاحيان (ربما للذكريات معها هههههه )

وايضا بالنسبة للpanel الي يثقل عمل البرنامج

اعتقد لو سوينا كل الpanel في البرنامج dispose يعني ندمرهم . ونخلي فقط الpanel المطلوب visible = true يكون البرنامج تمام ..

فانا فقط اقوم بجعل الpanel مخفيين (visible = false)

لابد ان اجرب نظرية التدمير لهذه الpanels


موفق
الرد }}}
تم الشكر بواسطة: hoob computer
#6
السلام عليكم ورحمة الله وبركاته

كنت مثلك في الماضي بتستخدم نفس الطريقة وقد كرهتها لتداخل الأدوات مع بعضها .

لذلك اتجهت إلي الـ UserControl .

في حالتك يمكنك الاستفادة منها كالتالي كمثال :

تنسخ القسم Section أو تصممه من جديد في واحدة منها
ونفس الشي مع القسم Post في واحدة أخرى ،، وهكذا مع بقية الأقسام

في الـ Form حتحتاج لأداة Panel واحدة فقط

يضاف لها الـ UserControl بالطريقة :
كود :
Dim UC As New UserControl1
        Panel1.Controls.Add(UC)

لتفريغ وحذف كل الـ UserControl من أداة الـ Panel :
كود :
Panel1.Controls.Clear()
(وَقُل رَّبِّ زِدْنِي عِلْمًا)

الرد }}}
تم الشكر بواسطة: ربيع , myalsailamy
#7
(22-01-14, 10:42 PM)kslawy كتب : السلام عليكم ورحمة الله وبركاته

كنت مثلك في الماضي بتستخدم نفس الطريقة وقد كرهتها لتداخل الأدوات مع بعضها .

لذلك اتجهت إلي الـ UserControl .

في حالتك يمكنك الاستفادة منها كالتالي كمثال :

تنسخ القسم Section أو تصممه من جديد في واحدة منها
ونفس الشي مع القسم Post في واحدة أخرى ،، وهكذا مع بقية الأقسام

في الـ Form حتحتاج لأداة Panel واحدة فقط

يضاف لها الـ UserControl بالطريقة :
كود :
Dim UC As New UserControl1
        Panel1.Controls.Add(UC)

لتفريغ وحذف كل الـ UserControl من أداة الـ Panel :
كود :
Panel1.Controls.Clear()

فكرة راااائعة وجميلة

وهذا يشبه الPage في WPF

حيث تقوم بتصميم Pages ثم تستضيفهم في Frame وتقدر تبدل بينهم بسهولة

فكرة خطرت على بالي ولكني تجاهلتها ، شكرا لك على تذكيرنا


كل الود Heart
الرد }}}
تم الشكر بواسطة: kslawy , hoob computer
#8
ما شاء الله عليكم يا أخواني الكرام (الشاكي لله, kslawy) .. كم أجد نفسي صغيراً في البرمجة عندما أقرأ مشاركاتكم Sad
الله يبارك فيكم و يزيدكم و يزدنا من فضله و علمه ...


السلام عليكم
الرد }}}
تم الشكر بواسطة: الشاكي لله , kslawy
#9
السلام عليكم
صراحه موضوع جميل جدا وشيق ولكن لي رأي مختلف تمام
نحن كمبرمجين كالشمع نزوب ليرتاح السيد المستخدم (وهو في الغالب لا يقدر مجهودنا ههههههه)
وبما اني ميكروسوفتي 100% وهي تحب ان تريح الناس والمبرمجين معا اخذت بعض الافكار من Poul shoul وهي الاتي
قبل بناء اي برنامج انظر البرامج المشابهه وانظر نقاط ضعفها
انا شخصيا استخدم القوائم contextmenu والفورمز فهي مريحه وسريع واعتقد احترافيه واعمل كل شئ فورم منفصل وكل وظائف مهمه معينه في folder خاص واحد بأسم الوظيفه فمثلا اضافه موظف
اعمل فولدر اسمه AddEmployee
ثم اضع الفورم الرئيسي بداخله ثم فورم الLookup وفورم option وبتحكم طبعا بالcontextment وبعدين حضرة المستخدم كليك يمين ويعمل العايزو
تحياتي
_____________________________________________________________________
microsoft partner
Team administrator
MCPD,MCITP,OCP,MP,MCC
Xprema Systems
الرد }}}
تم الشكر بواسطة:
#10
(23-01-14, 11:55 PM)smss كتب : السلام عليكم
صراحه موضوع جميل جدا وشيق ولكن لي رأي مختلف تمام
نحن كمبرمجين كالشمع نزوب ليرتاح السيد المستخدم (وهو في الغالب لا يقدر مجهودنا ههههههه)
وبما اني ميكروسوفتي 100% وهي تحب ان تريح الناس والمبرمجين معا اخذت بعض الافكار من Poul shoul وهي الاتي
قبل بناء اي برنامج انظر البرامج المشابهه وانظر نقاط ضعفها
انا شخصيا استخدم القوائم contextmenu والفورمز فهي مريحه وسريع واعتقد احترافيه واعمل كل شئ فورم منفصل وكل وظائف مهمه معينه في folder خاص واحد بأسم الوظيفه فمثلا اضافه موظف
اعمل فولدر اسمه AddEmployee
ثم اضع الفورم الرئيسي بداخله ثم فورم الLookup وفورم option وبتحكم طبعا بالcontextment وبعدين حضرة المستخدم كليك يمين ويعمل العايزو
تحياتي
_____________________________________________________________________

شكرا على ردك دكتور سامر ...

واحب ان اضيف ايضا .. ان لكل برنامج طريقة تصميم خاصة لتناسب البرنامج اكثر

لنضرب مثالا : برامج الStudio امثال Xamarin , Visual studio , netbeans.....

افضل تصميم لها هي الdockable window





بينما اخرى مثل برنامج تحميل الملفات يكون فيها الListview هو الاداة الرئيسية والافضل لها

وهكذا دواليك ....

شكرا لمرورك استاذنا سامر وبالتوفيق لنا ولكم وللمشاهدين ان شاء الله
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  محتاج طريقة لتنسيق نص الرسالة المرسلة إلى الواتس اب new_programer 2 163 04-03-24, 07:15 AM
آخر رد: new_programer
  طريقة اجراء نسخة احتياطية و استرجاعها ؟ Osama NY 2 461 07-02-24, 08:59 PM
آخر رد: Kamil
  [VB.NET] مساعدة في استدعاء البيانات معينه من form الأول إلى form 2 بدون التعديل loay775 2 272 18-01-24, 05:04 PM
آخر رد: loay775
  ماهي طريقة نقل محتويات checkedlistbox الى داتاقريدفيو صالح عبدالله 3 253 06-01-24, 03:20 PM
آخر رد: Kamil
  [VB.NET] ما هي طريقة استدعاء الازرار في الكيبورد من خلار زر افتراضي haider.mohsin92 1 295 14-12-23, 03:19 PM
آخر رد: Kamil
  طريقة عرض التقرير كريستال ريبورت في جهاز العميل Adel27213 2 347 10-12-23, 04:03 AM
آخر رد: Adel27213
  طريقة إسناد اكثر من جدول للكريستال ريبورت Adel27213 2 353 25-11-23, 11:51 PM
آخر رد: Adel27213
  طريقة تحويل الأرقام إلى حروف Adel27213 2 495 18-11-23, 01:40 AM
آخر رد: sniper2030
  التحكم فى عرض طريقة التاريخ فى الاداة datetimepicker Ahmed.vb 3 507 08-11-23, 01:27 AM
آخر رد: الحزين اليماني
  طريقة جلب صف من قاعدة البيانات بشرط العمود ٤ لا يساوي فارغ Adel27213 2 423 07-11-23, 05:02 AM
آخر رد: Adel27213

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم