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

Passing Data between forms

مغلق
بدأه baha_ashour في 27 فبراير 2006 · 14 رد · 1,379 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

يوجد هنالك طرق كثيرة لنقل ال Data بين ال forms

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

سنقوم بتعريف Delegate في Form2 وعمل instance منه ليتم ربطه ب function موجود ب Form1

والطريقة كالتالي:

في Form2 :

public delegate void PassDataDelegate(string myTxt);
public PassDataDelegate passData;

وفي ال button :

passData(this.textBox1.Text);

أما في Form1 :

ننشىء instance من Form2 ونربطه ال Delegate التابع له ب function

Form2 f2 = new Form2();
f2.passData = new Form2.PassDataDelegate(getDataFromForm2);
f2.Show();

وال function :

private void getDataFromForm2(string myData)
{
      this.textBox1.Text = myData;
}

في المرفقات مثال وهذه صورة عنه :

26_02_06_04_02_56_1140998576PassingText.JPG

PassingText.rar

#2

اين انت من زمان بارك الله فيك

انا كنت رح اموت على هذه الطريقة

الف شكر

#3

اخي الكريم

تصدق إني دوخت على هذه الطريقة .

كل ما كنت اسئل واحد كان يتوهني اكثر وقد افادني شرحك كثيرا

شكرا شكرا جزيلا ً لك

بأبي انت وأمي يــــــــــــــــــا رسول اللــــــــــــــــــــــــــــــــه

11_04_06_03_18_15_11447506951138477499_kuth.gif

تذكر دائما ً إنك لا تعيش وحدك

تذكر ان ثمة كثيرون يحتاجون لك

ربما يحتاجون اشياء اكثر بساطة من ان تلتفت انت إليها

ربما يحتاجون إلى كلمة تشجيع ..... في زمن سيطر فيه المال وضاع الحب وتم قتل المشاعر

ربما يحتاجون إلى كتاب ينقلهم إلى عالم .... لا يستطيع الإنسان الذهاب إليه أو العيش.

لا تمشي امامي فقد لا أتبعك

ولا تمشي خلفي فقد لا أقودك

ولكن امشي بجانبي ولنكن اصدقاء

كل زائد تافه مرفوض في عالم البرمجة

emadty@yahoo.com

#4

العفو .. وشكرا على تشجيعكم ;)

#5

شكرا أخي الكريم

لكن سؤال .... هل لازم أعمل show لل form ...

يعني افرض هي موجوده اصلا ... ازاي ابعت ال data بين 2 form مفتوحين

#6

لم أفهم عليك أخ C#please

ماذا تقصد ب : "هل لازم أعمل show لل form ..."

كيف ستنقل ال Data من فورم لآخر دون أن تفتح الفورم !!!

بعد ان تقوم بعمل instance من الفورم .. قم بربط ال delegate الخاص به بال function المناسب

ثم استدعي هذا ال function متى تشاء

أرجو أن تكون وضحت الصورة لديك

#7

يا باشا أنا فاهم قصدك

جزاك الله كل خير

أقصد لو عندي form1 و form2 مفتوحين .... عايز ابعت رسالة من form2 ل form1 مثلا وهم مفتوحين

#8

أيضا لم أفهم عليك :blink:

في button1 في form2 وبعد ان يتم نقل الداتا . كنت اعمل close للفورم .

بامكانك ان تلغيها !!

private void button1_Click(object sender, EventArgs e)
{
            if (passData != null)
            {
                passData(this.textBox1.Text);
            }

            //Close();   <== If You Don't Want it
 }

هل هذا ما تقصده؟

تم تعديل هذه المشاركة بواسطة baha_ashour في 27 فبراير 2006 في 18:40

#9

ما هي الطرق الأخري ؟؟؟

تم تعديل هذه المشاركة بواسطة R0OT في 27 فبراير 2006 في 19:35

#10

بارك الله فيك...............................

يمكن هناك طريقة بدون delegates

وهي أن تعرف static form2

وبعدها تدخل عليها مباشرة

رح اعمل كود كامل وأبعثه

بارك الله فيك أخي بهاء

My_Sign.jpg
#11

ايضا يمكنك استخدام ال References

في الفورم الاول :

Form2 f2 = new Form2(ref myObject);

وفي الفورم الثاني :

Form2(ref object myObject){
       // update the value of the object
}

ولكن قد تواجه في هذه الطريقة بعض المشاكل

لذلك يعتبر ال delegate افضل الطرق

#12

الف شكر ليكوا يا رجالة

لا اله الا الله .......................................... محمد رسول الله

#13

مشكور اخي بهاء علي المجهود الرائع والذي نستفيد منه كثيرا

Khaled_Tiger

النجاح الوحيد في الحياة هو أن تستطيع أن تحيا حياتك بالطريقة التي تريدها

يخاطبني السفيه بكل قبح *** فأكره أن أكون له مجيبا

يزيد سفاهة فأزيد حلمــا *** كعود زاده الإحراق طيبا

إذا نطق السفيه فلا تجبه *** فخير من إجابته السكوت

فإن كلَمته فرَجت عنــــه *** وإن خليته كمداً يـمـــوت

#14

العفو ... وشكرا على ردودكم المشجعة ;)

#15

يا جماعة في طريقة بسيطة ابسط من هذا كله

نفترض انه لدينا فورمين Form2 - Form1

نريد الوصول للفورم 1 من خلال الفورم 2

ببساطة نعرف متغير داخل فورم 1 مثلا

 // in   form1   after class decleration
 public static Form1  F_1;

  // after  Initioalization
F_1=this;

-----------

// بالفورم الثاني 
//وبأي مكان نكتب 
Form1.F_1.textBox1.Text="this from form2";

انتهى الموضوع

كم هو بسيط

تم تعديل هذه المشاركة بواسطة jooorj في 15 مارس 2007 في 23:38

موقوف من المشاركة لقلة الأدب

============================

هذا الموضوع مغلق.

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