منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : نقل بيانات من فور الي فورم
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم  سؤال في لغة السي شارب عايز انقل بيانات من داتا جريد فيوا في فورم 1  مخزنه في ماي سيكوال  الي داتا جريد فيوا في فورم 2 او الي تكست بوكس في فورم اخر لتسجيلها في  ماي سيكوال اخر ممكن الكود لو سمحتم وشكرا جزيلا
وعليكم السلام ورحمة الله وبركاته

المشكلة عندك هي : كيف تتحكم بأداة موجودة على نافذة ثانية؟؟  :

لن أشرح لك المشكلة نفسها بل مثال بسيط عنها 
وأنت قم بحل مشكلتك مع نقل البيانات،

للتبسيط : أفتح مشروع جديد وضع فيه نافذتين :
في النافذة الأولى ضع عليها زرين (button1) - (button2)
وفي النافذة الثانية ضع عليها (textBox1)
من أجل أن  تجعل الـ (textBox1) مرئية في كل النوافذة الأخرى 
عليك منح صلاحيات الرؤية لها وذلك من خلال الخاصية (Modifiers) اختر منها القيمة (Public) مثلاً..

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

كود :
Form2 frm2 = (Form2)Application.OpenForms["Form2"];



ضمن حدث الـ (button1) عليك أن تكتب الكود التالي:
كود :
if (frm2 != null)
   frm2.Activate();
else
{
   frm2 = new Form2();
   frm2.Show();
}

بهذا تصبح النافذة الثانية مرتبطة بالمتغير (frm2) فأي أمر يوجه لها من خلاله يتم تنفيذه على كل أداة خاصية الرؤية فيها (Public) يتم تنفيذه مباشرة..
لو أردنا أن نكتب أي شيء في مربع النص الموجود على النافذة الثانية نعطيه الأمر :
كود :
frm2.textBox1.Text = "Hello...";

فيصبح الكود الموجود على النافذة الأولى بالشكل التالي :
كود :
Form2 frm2 = (Form2)Application.OpenForms["Form2"];
private void button1_Click(object sender, EventArgs e)
{

   if (frm2 != null)
       frm2.Activate();
   else
   {
       frm2 = new Form2();
       frm2.Show();
   }

   
}

private void button2_Click(object sender, EventArgs e)
{
   frm2.textBox1.Text = "Hello";
}

الزر الأول يربط النافذة الثانية إن كانت ظاهرة أو ينشئها من جديد ويربطها بالمتغير frm2
والزر الثاني يتحكم بالمدخلات في مربع النص الموجود على النافذة الثانية ..
هذه الطريقة فيك تعممها على كل الأدوات في أي نافذة من نوافذ السي شارب ..

والآن جاء دورك : لتساعد نفسك في مشروعك..
اشكرك اخي الكريم taha علي المعلومة القيمة هذه واستفدت منها كثرا وسوف اجربها علي مشروع اخر ولكن في هذا المشروع  يبدوا اني لم اوفق في شرح ما اريد حتي تتمكن من مساعدتي انا عندي فورم1 وفورم 2 كل واحد به  به داتاجريد فيو مرتبطا ب ماي سيكوال اسمه data و به جدولين الاول اسمه product  وده للفورم 1 والثاني اسمه  warehouse وده للفورم الثاني وعند عمل select  في الداتا جريد فيو فورم 1 يفتح فورم 3 وبه 4 او 5 text Box واحد لاسم المنتج والثاني للكميه وهكذا ويوجد 2  button واحد لاتمام التحويل من data product الي data warehouse وال button 2 للرجوع عن ارسال البيانات  وهذا كل ما في الامر وارجوا  يكون فيه طريقه لهذا ؟؟؟؟ !!!