الأربعاء، 18 يونيو 2014

تمرير البيانات بين Forms

تمرير البيانات بين Forms
كيفية تمرير البيانات بين نماذج Forms في C#  ليست واضحة جدا، لكنها ايضا ليست صعبة جدا. هي خدعة لتذكر الكائنات. تمرير البيانات بين النماذج Windows Forms  مهمة عند العمل مع مربعات الحوار على سبيل المثال. أو ببساطة عندما يعتمد النظام على مدخلات من أكثر نموذج/شاشة Form.

باستخدام الــ Parameters:
أسهل طريقة لتمرير البيانات إلى نموذج Form جديد هو استخدام الـ  Parameters  في الــ constructor ‏.
public MyForm(string Message)
        {
            InitializeComponent();
        }




باستخدام الــ Properties:

 نريد تمرير البيانات إلى نموذج  Formآخر، ومن ثم الحصول على بعض القيم مرة أخرى.أحد الحلول الممكنة هو تمرير parameter  من النموذج  Formالأصل إلى نافذة جديدة.
وهناك طريقة أفضل بكثير لاستخدام الخصائص Properties. ما نحن بصدد القيام به هو إضافة خصائص properties الخاصة بنا ، والتي سوف تسمح لنا بتمرير البيانات إلى نموذج آخر ثم الحصول عليه مرة أخرى.

public string _Message;

public MyForm(string Message)
        {
            InitializeComponent();
     this._Message = Message;
        }


-------------------------------------------


using System;
using System.Windows.Forms;

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

        private void btnOpenfrm2_Click(object sender, EventArgs e)
        {
            MyForm child = new MyForm();
            child.Message = "hello!";
            child.ShowDialog();

            string newMessage = child.Message;
        }
    }
}


-------------------------------------------



using System;
using System.Windows.Forms;

namespace DemoPassing_Data
{
    public partial class MyForm : Form
    {
        public string _Message;
        public string Message
        {
            get { return _Message; }
            set { _Message = value; }
        }

        public MyForm()
        {
            InitializeComponent();
            this._Message = Message;
        }

        private void MyForm_Load(object sender, EventArgs e)
        {
            lbl.Text = Message;
        }
    }
}


تذكر ان _Message ما هو إلا متغير.
لتعريف خاصية property باسم Message.
public string Message
        {
            get { return _Message; }
            set { _Message = value; }
        }


ليست هناك تعليقات:

إرسال تعليق

يسعدني إرسال تعليقاتكم وأسئلتكم واقتراحاتكم