Truyền giá trị giữa các form trong C# bằng thuộc tính DialogResult

Truyền giá trị giữa các form trong C# rất quan trọng khi làm ví dụ với các hộp thoại . Có nhiều cách để thực hiện thao tác này như sử dụng delegate, properties hay constructor. Tuy nhiên, bản thân mình thấy phương pháp sử dụng thuộc tính DialogResult khi open một form nào đó là một phương pháp thân thiện và dễ hiểu nhất. Bạn download SourceCode tại đây để có thể tìm hiểu kỹ hơn nhé.

Sau đây là một ví dụ đơn giản để bạn tìm hiểu phương pháp này:

I. Tạo 2 form MainForm và DialogForm.

1. MainForm: có 1 TextBox (id: textValue) và 1 button (id: btnEdit)

Truyền giá trị giữa các form (1)2. DialogForm: có 1 TextBox (id: txtValue) và 2 button OK, Cancel

Truyền giá trị giữa các form (2)Đối với button OK, bạn set thuộc tính DialogResultOK và tương tự, button Cancel có thuộc tính DialogResultCancel

DialogResult-OK

Ngoài ra, tại form này tạo thêm 1 biến textValue để lưu giữ giá trị truyền giữa 2 form

 public string textValue = "";

II. Viết code để truyền giá trị từ MainForm tới DialogForm và ngược lại:

– Tại MainForm, bạn viết code xử lý sự kiện click vào button btnEdit để truyền giá trị “Value1” trong textbox txtValue sang DialogForm

MainForm (2)

public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();
        }

        private void txtEdit_Click(object sender, EventArgs e)
        {
            DialogForm frm = new DialogForm();
            //Gán giá trị cho biến textValue trong DialogForm
            frm.textValue = txtValue.Text;
            //Nếu sau khi bạn ấn nút OK trên DialogForm
            if (frm.ShowDialog() == System.Windows.Forms.DialogResult.OK) {
                //Gán giá trị textValue trong DialogForm cho textbox txtValue trong MainForm
                txtValue.Text = frm.textValue;
              
            }
        }
    }

– Tại DialogForm, viết code để gán giá trị “Value1” nhận được vào TextBox txtValue khi load DialogForm

 private void DialogForm_Load(object sender, EventArgs e)
        {   
            //Khi load form, Gán giá trị textValue được truyển từ MainForm cho textbox txtValue
            txtValue.Text = textValue;
        }

– Sau khi bạn gõ giá trị mới, giả sử là “Value2” vào textbox, bạn viết code xử lý sự kiện ấn button OK để gán giá trị của textbox txtValue cho biến textValue để truyền giá trị mới trở lại form MainForm. Code đầy đủ của form như sau:

public partial class DialogForm : Form
    {
        public string textValue = ""; 
        public DialogForm()
        {
            InitializeComponent();
        }

        private void DialogForm_Load(object sender, EventArgs e)
        {   
            //Khi load form, Gán giá trị textValue được truyển từ MainForm cho textbox txtValue
            txtValue.Text = textValue;
        }

        private void btnOK_Click(object sender, EventArgs e)
        {
            //Gán giá trị cho textValue từ textbox txtValue
            textValue = txtValue.Text;
        }
    }

DialogForm(2)
– Kết quả là textbox trong MainForm sẽ nhận giá trị mới là Value2

MainForm (3)

Truyền giá trị giữa các form trong C# Thật đơn giản phải không nào? Bạn download SourceCode tại đây để có thể tìm hiểu kỹ hơn nhé. Chúc các bạn học lập trình vui vẻ và thành công.

 

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận
0
Rất thích suy nghĩ của bạn, hãy bình luận.x
()
x