الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ال Public List بتتمسح اول لما اعمل بيلد

بدأه MohamedAliSalim في 20 ديسمبر 2009 · 6 رد · 730 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

انا عملت فورمة رئيسية وليكن اسمها Form1

وضعت بها Property جدديدة من نوع public List<string> اسمها ZmyList

حتى يستطيع المستخدم وضع بها القيم التي يريدها

وعملت فورمة اسمها Form2

Inherited from From1

فظهرت هذه الخاصية في الفورمة 2

وبدأت اضع بها القيم اللي عاوزها

ولكن عندما اعمل Build للمشروع يتم مسح هذه القيم ولا استطيع ان اتعامل معها

حيث اقوم بوضع قيم في وضع الــ Denise Time حتى أستخدم هذه القيم في وضع الــ Run Time

ولكنها تتمسح في الــ Run Time ولا أستطيع التعامل معها

مرسل مع الموضوع مثال بسيط لتجربته والتعديل عليه

وهو عبارة عن Form1 الرئيسية التي بها الخاصية ZmyList من النوع public List<string>

وتحتوي على ListBox حتى يحمل هذه القيم في وضع التشغيل

والفورمة التانية Form 2 المأخوذة من Form1

أرجو النظر إلى الموضوع والرد عليه

شكرا...

WindowsFormsApplication2.rar

Mohamed Ali Salim

0.1..0...4....7.....6......2.......7........4.........8

#2

حسب ما فهمت أن القيم الموجودة داخل الـlist هي التي تمسح عند القيام بعملية Build. صحيح؟

إذا كان هذا ما يحدث فهذا طبيعي. الكلاس بحد ذاته ليس مخزناً للبيانات. و البيانات المسجلة فيه تمسح فور انتهاء عملها. لذا يجب تسجيلها في مكان آخر.

#3

مشكور على الرد

بل كيف أصل إلى ما أريده ؟؟؟

إذا كان اللي عملته ده غلط ومش هاينفع فماذا افعل ؟؟

Mohamed Ali Salim

0.1..0...4....7.....6......2.......7........4.........8

#4

بسم الله الرحمن الرحيم السلامُ عليكُم ورحمةُ اللهِ وبركاتُه

أولاً أخي الكريم عليك لكي تستطيع ان تستخدم متحولات مُشتركة بإمكانك استخدام public static كمُقدمة لتعريف متحول مشترك بين أكثر من غرض (الغرض في حالتنا هو النافذة Form ) مثلاً

public static int x;

ثانياً : في حال استخدام الوراثة في حال كُنت عند الإبن وأردت التعديل بمتحولات موجودة عند الأب فيجب أن تكون هذه المُتحولات متحولات معرفة كـpublic or protected.

ثالثاً : في حال أدخلت المعلومات عند الأب أثناء كتابة الرماز Code فستجدها عند الأبناء موجودة ، وفي حال حاولت الإدخال عند الإبن فيجب تحقيق ما ذُكر في الأعلى ثُم يجب إختيار موقع الإدخال فالذي حدث معك على ماأعتقد في مشروعك أنك تقوم بملئ الصندوق عند عملية التحميل للنافذة Form_Load وبالتالي مهما أدخلت بعد هذه النُقطة سيتم إدخاله إلى القائمة ولكن لن يظهر وبالتالي المعلومات كان موجودة ولكن لا تظهر

لذلك عليك أن تقوم إما بالإدخال قبل عملية الإظهار أو تأخير عملية الإظهار إلى مابعد عملية الإدخال.

أرفقت الملف الذي أرسلته مع التعديلات

WindowsFormsApplication2.rar

أتمنى أن أكون قد وُفِقت في الشرح وأتمنى أن أكون قد أفدت

أخوك في الله : سامر

تم تعديل هذه المشاركة بواسطة samer226047 في 20 ديسمبر 2009 في 15:57

إن كلماتنا ستبقى ميتة أعراساً من الشموع لا حراك فيها جامدة ، حتى إذا متنا من أجلها انتفضت حية وعاشت بين الأحياء ، كل كلمة عاشت كانت قد اقتاتت قلب إنسان حي ، فعاشت بين الأحياء ، والأحياء لا يتبنون الأموات

الليل ولى وجاء دورك يا صباح سفينة الإيمان سارت لا تبالي بالرياح

ولا تنسوني من دعائكم

#5

مشكور اخي على مرورك الكريم وإليك التعليق

اقتباس

ولاً أخي الكريم عليك لكي تستطيع ان تتعامل معها في الفورم الثاني أن تكون هذه الميزة Protected أو public لأنها عندما تكون private لن تستطيع التعامل معها

فأنا أفهم ذلك كويس وأنا بالفعل عامله Private لأني لم أتعامل معه مباشرة , أنا بتعامل مع الــ Property والــ Property هي اللي بتتعامل معاه

فأنا اتعامل مع الــ Property عن طريق النموذج في وضع التصميم

post-73411-12613143242506_thumb.png

فعند الضغط كليك تظهر لي نافذة لأكتب بها ما أريده هكذا

post-73411-12613145518659_thumb.png

وبالفعل بعد ما اضغط Ok ثم فتحها ثانيا بالفعل تكون القيم موجودة

ولكن إذا قمت بإغلاق النموذج وفتحه مرة أخرى لم اجد هذه القيم وكل هذا في وضع التصميم

اقتباس

نياً : في حال استخدام الوراثة في حال كُنت عند الإبن وأردت التعديل بمتحولات موجودة عند الأب فيجب أن تكون هذه المُتحولات متحولات معرفة كـpublic or protected.

ثالثاً : في حال أدخلت المعلومات عند الأب أثناء كتابة الرماز Code فستجدها عند الأبناء موجودة ، وفي حال حاولت الإدخال عند الإبن فيجب تحقيق ما ذُكر في الأعلى ثُم يجب إختيار موقع الإدخال فالذي حدث معك على ماأعتقد في مشروعك أنك تقوم بملئ الصندوق عند عملية التحميل للنافذة Form_Load وبالتالي مهما أدخلت بعد هذه النُقطة سيتم إدخاله إلى القائمة ولكن لن يظهر وبالتالي المعلومات كان موجودة ولكن لا تظهر

لذلك عليك أن تقوم إما بالإدخال قبل عملية الإظهار أو تأخير عملية الإظهار إلى مابعد عملية الإدخال.

بالفعل انا بكلم الموجود في الأب عن طريق الــ public List<string> ZmyList

ولكن عن طريق وضع التصميم من خلال الــ Properties كما موضح بالصور السابقة

انا من السهل عليا ان أملئها عبر الكود كما أنت فاعل والإستغناء عن الــ public List<string> ZmyList دي خالص

فهل فهمت ماذا أريد ؟؟؟

Mohamed Ali Salim

0.1..0...4....7.....6......2.......7........4.........8

#6

بسم الله الرحمن الرحيم

عندما قُمت بفتح الملف المُرسل بحثت في القائمة عن عن هذه الخاصية ولم تظهر لذلك بدأت أفكر بطريقة أُخرى

أعتذر عن سوء الفهم أخي :)

ولكني حاولت مرة أخرى وظهرت معي نفس الأخطاء أخي التي ذكرت أخي

حاولت بإيجاد فكرة ووجدت طريقة أخرى طبعاً كان الحل أيضاً من خلال إدخال النص برمجياً وليس بالطريقة التي تُريد للآسف

فإذا كان الهدف الإدخال فلا فرق بين الإدخال برمجياً أو الإدخال بالطريقة التي ذكرت

في حال كُنت هذه الطريقة بعينها فأنا لا أعلم كيفية جعل هذه الطريقة تعمل وأرجو توضيح كيفية عملها في حال استطعت العمل على هذه الطريقة بنجاح

وأُكرر إعتذاري

أخوكم في الله : سامر

إن كلماتنا ستبقى ميتة أعراساً من الشموع لا حراك فيها جامدة ، حتى إذا متنا من أجلها انتفضت حية وعاشت بين الأحياء ، كل كلمة عاشت كانت قد اقتاتت قلب إنسان حي ، فعاشت بين الأحياء ، والأحياء لا يتبنون الأموات

الليل ولى وجاء دورك يا صباح سفينة الإيمان سارت لا تبالي بالرياح

ولا تنسوني من دعائكم

#7

مشكور أخي سامر على حسن ردك وإن شاء الله إذا وجدت حل هانشره وشكرا مرة أخرى على حسن متابعتك

Mohamed Ali Salim

0.1..0...4....7.....6......2.......7........4.........8

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…