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

نسخ البيانات من فورم لفورم آخر؟

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

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

لدي سؤال هام..وهو هل من الممكن نسخ البينات من فورم لفورم آخر؟..

يعني إذا كان عندي مثلاً الفورم الأول لإدخال اسم المستخدم وكلمة السر تبعه،يظهر الفورم الثاني يقول مرحبا لاسم المستخدم الذي دخل في الفورم الأول؟

هل يمكن ذلك أولا ..ولماذا سواء كان نعم أم لا مع ذكر السبب..

أتمنى أن يكون سؤالي واضحاً..

تقبلوا تحياتي،،

#2

السلام عليكم ورحمه الله وبركاته

اختي يمكنك ذلك بأكثر من طريقة, يمكنك تعريف متغير من نوع static داخل الفئة Program وليكن مثلا Username بعدها اضيفي السطر التالي بعد كود التحقق

Program.Username=txtUsername.Text;

كما يمكنك عمل متغير من نفس النوع وانشاء فئة جديدة واستخدامها كالسابق.

ويمكنك الوصول لمربع العنوان الموجود في الفورم الثاني من الفورم الاول وذلك بعد ضبط الخاصيه modifier الى public وبعدها جربي الكود التالي

Form2 frm2 = new Form2();
frm2.lblGreeting.Text="Welcome, " + txtUsername.Text;
frm2.Show();

طبعا لأنك في الحالة الاول تم تصريح المتغير كمتغير عام يمكن الوصول له عبر الفئة, وفي الطريقة الثانية جعلنا الأداة عامة يمكن الوصول لها بعد اسم الكائن من الفورم الموجوده فيه

تم تعديل هذه المشاركة بواسطة VB Helper في 20 ديسمبر 2011 في 19:18

.:: Wish to become better and better ::.

#3

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

مشكور أخي الكريم على سرعة ردك..لكن ما فهمت عليك قليلاً ممكن توضح أكثر أو ممكن تحمل ملف فيه الكود والفورم عشان يتضح لي أكثر وأيهما أفضل الطريقة الأولى أم الثانية؟

#4

السلام عليكم ورحمه الله وبركاته

اختي مو مشكلة الطريقة الاولى او الثانية, ما عليك الا انشاء متغير في الفئة Program الموجوده في الملف Program.cs بالصوره التاليه

public static string Username;

بعدها يمكنك استخدام المتغير لحفظ اسم المستخدم بالصورة التالية

Program.Username=txtUsername.Text;

وفي حدث الـ Form_Load لفورم الثاني ضعي الكود التالي

lblGreeting.Text="Welcome, " + Program.Username;

.:: Wish to become better and better ::.

#5

اختى الكريمة.... جربى هذا الكود وانا هقولك على فكرة هذا الكود.... انتى تعملى textbox1 وده للـ user name وتعملى textbox2 وده للـ password وتوصلى datagridview1 ( على سبيل المثال ) بقاعدة البيانات وده طبعا فى الفورمة الاولى.... بحيث لما الزبون يكتب اسمه فى textbox1 والباسورد بتاعه فى textbox2 ويطلع اسمه والباسورد بتاعه زى الاسم والباسورد الموجودين فى قاعدة البيانات.... يقوم البرنامج يدخل الزبون على الفورمة الثانية ويقول له مرحبا :

private void button1_Click(object sender, EventArgs e)
        {
           if (textbox1.Text != null)
            {
               if(textbox2.Text != null)
               {
                 if (textbox1.Text == datagridview1.CurrentRow.Cells["user"].value.ToString())
                  {
                     if(textbox2.Text == datagridview1.CurrentRow.Cells["password"].value.ToString())
                     {
                       MessageBox.Show("تم الدخول بنجاح");

                       Application.Restart();

                       Form2 a = new Form2();
                       a.Show("اهلا وسهلا بك يا ........");
                     }
                       else
                       MessageBox.Show("اعد كتابة user name و password بشكل صحيح")
                 }
                    else
                    MessageBox.Show("اعد كتابة user name و password بشكل صحيح");
            }
        }
    }

ملحوظة datagridview1 فى الكود ده على سبيل المثال

واتمنى لكى التوفيق... وشكرا

تم تعديل هذه المشاركة بواسطة صوت الماضى في 20 ديسمبر 2011 في 20:32

#6

السلام عليكم ورحمه الله وبركاته

صوت الماضي ماهذا

a.Show("اهلا وسهلا بك يا ........");

الاجراء يستخدم لإظهار الفورم وليس لعرض رسالة عليه؟!!

.:: Wish to become better and better ::.

#7

شكراً جزيلاً لكما أخوي الكريمين صوت الماضي و VB Helper ..لكن أخي VB Helper طبقت كلامك ولكن طلع لي خطأ واحد ..شوف الكود ده صح ولا فيه خطأ في مكان الكود:

namespace username
{
    static class Program
    {
       public static string Username;
       Program.Username=[txtUsername.Text]


        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}

الخطأ يقول : Invalid token '=' in class ,struct,or interface member declaration

فهل مكان وضع public static string Username;

Program.Username=[txtUsername.Text] صحيح أم لا لأن الخطأ فيه؟..أما الباقي فواضح ما قصرت أخي الفاضل

#8

السلام عليكم ورحمه الله وبركاته

اختي انا لم اذكر السطر التالي

Program.Username=[txtUsername.Text]

قومي بالغاءة واتبعي ما ذكرته سابقا ..

.:: Wish to become better and better ::.

#9

اليك الكود بعد التعديل....

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        void resala()
        {
           Form2 a = new Form2(); 
           a.Show();
           MessageBox.Show("اهلا وسهلا بك يا .........");
        }

private void button1_Click(object sender, EventArgs e) 
        { 
           if (textbox1.Text != null) 
            { 
               if(textbox2.Text != null) 
               { 
                 if (textbox1.Text == datagridview1.CurrentRow.Cells["user"].value.ToString()) 
                  { 
                     if(textbox2.Text == datagridview1.CurrentRow.Cells["password"].value.ToString()) 
                     { 
                       MessageBox.Show("تم الدخول بنجاح"); 

                       Application.Restart(); 

                       resala();
                     } 
                       else 
                       MessageBox.Show("اعد كتابة user name و password بشكل صحيح") 
                 } 
                    else 
                    MessageBox.Show("اعد كتابة user name و password بشكل صحيح"); 
            } 
        } 
    }

وشكرا جزيلا

#10

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

أخي VB Helper لقد ذكرت السطر السابق فوق كالتالي:

Program.Username=txtUsername.Text;

لكن المشكلة مكان وضعه..لقد ألغيته كما قلت لي لكن لا يزال البرنامج فيه أخطاء لم أفهمها..

هل تستطيع تحميل ملف أفضل؟

#11

السلام عليكم ورحمه الله وبركاته

اختي يرجى ارفاق المشروع للنظر فيه ..

.:: Wish to become better and better ::.

#12

اختى... كما ذكرت سابقا ان datagridview ده على سبيل المثال.... يعنى انتى مش لازم تختارى datagridview ممكن ان تختارى اى اداة اخرى وتوصليها بقاعدة البيانات وتمشى على الكود اللى انا ذكرته سابقا والمشكلة هتتحل

واليك كود ربط datagridview بقاعدة البيانات :

اولا تضعى هذا الكود فى الـ using :

using System.Data.OleDb;

وهذا الكود لربط datagridview بقاعدة البيانات :

OleDbDataReader detRead; 
     SqlCommand1.CommandText = "SELECT ID, user, password  FROM Tabel1 WHERE ID" 
     if (SqlConnection1.State == ConnectionState.Closed) SqlConnection1.Open(); 
     detRead = SqlCommand1.ExecuteReader(); 
     while (detRead.Read()) 
     { 
        datagridview1.Rows.Add(new object[] { detRead["ID"], detRead["user"], detRead["password"] }); 
     } 
        detRead.Close(); 
        SqlConnection1.Close();

واتمنى لك التوفيق.... وشكرا

تم تعديل هذه المشاركة بواسطة صوت الماضى في 21 ديسمبر 2011 في 22:51

#13

السلام عليكم ورحمة الله وبركاته.

هذه مقالة رائعة جداً و واضحة وفيها شرح لعملية نقل البيانات من فورم لفورم اخر بعدة طرق http://www.codeproject.com/KB/cs/pass_data_between_forms.aspx

((إِنَّ اللَّهَ وَمَلائِكَتَهُ يُصَلُّونَ عَلَى النَّبِيِّ يَا أَيُّهَا الَّذِينَ آمَنُوا صَلُّوا عَلَيْهِ وَسَلِّمُوا تَسْلِيمًا))

#14

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

شكراً لكم إخوتي الكرام ..أخي VB Helper لم أعرف كيف أرفق الملف كل ما رفعت الملف تظهر لي رسالة تقول لا يمكن إرفاق هذا النوع من الملفات!

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

أختي روز شكراً على المقالة الرائعة جداً

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

تحياتي للجميع،،

#15

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

يفترض بهذه المشاركة أن تساعدك في حل مشكلتك ,

/index.php?showtopic=251917&view=findpost&p=1245037

هذا ما فهمته من مشكلتك.

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