Sử dụng Delegate để truyền giá trị trong C#
Số trang: 4
Loại file: pdf
Dung lượng: 166.37 KB
Lượt xem: 7
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Để có thể viết được một ứng dụng phần mềm, bạn phải biết cách truyền giá trị qua lại giữa các Form. Tuy nhiên, khi ta muốn lấy giá trị từ nhiều Form khác, chắc chúng ta sẽ gặp rắc rối với những cách làm thông thường. Delegate sẽ giúp chúng ta giải quyết vấn đề. Trước hết, tôi sẽ trình bày cho các bạn cách truyền giá trị theo cách thông thường. Dưới đây là giao diện của các Form: Đây là giao diện của Form chính. có 2 textbox để hiển thị giá trị lấy từ các Form...
Nội dung trích xuất từ tài liệu:
Sử dụng Delegate để truyền giá trị trong C# Sử dụng Delegate để truyền giá trị trong C# Để có thể viết được một ứng dụng phần mềm, bạn phải biết cách truyền giá trị qua lại giữa các Form. Tuy nhiên, khi ta muốn lấy giá trị từ nhiều Form khác, chắc chúng ta sẽ gặp rắc rối với những cách làm thông thường. Delegate sẽ giúp chúng ta giải quyết vấn đề. Trước hết, tôi sẽ trình bày cho các bạn cách truyền giá trị theo cách thông thường.Dưới đây là giao diện của các Form:Đây là giao diện của Form chính. có 2 textbox để hiển thị giá trị lấy từ các Form khác. 2 buttoncó chức năng hiển thị các form mà mình muốn lấy giá trị.Còn đây là giao diện của Form 1, Gồm 1 textbox để nhập giá trị, nút button để xác nhận giá trịđó và truyền giá trị được nhập trong ô textbox cho form chính.Tương tự như Form 1, Form 2 cũng gồm 1 textbox để nhập giá trị, nút button để xác nhận giá trịđó và truyền giá trị được nhập trong ô textbox cho form chính.1. Với việc truyền giá trị thông thường:- Trong Form Chính:// Ta khai báo trường để lưu giá trị.private string _getFirstValue = null;// Thuộc tính này có nhiệm vụ lấy giá trị từ các Form khác.public string GetFirstValue{get{return _getFirstValue;}set{_getFirstValue = value;}}Và viết sự kiện cho nút btnGetValue1:private void btnGetValue1_Click(object sender, EventArgs e){frmFirstValue first = new frmFirstValue();first.ShowDialog();}Và khi Form chính được hiển thị, ta phải hiển thị nhận được thông qua các thuộc tínhGetFirstValue.private void frmMain_Load(object sender, EventArgs e){txtFirstValue.Text = GetFirstValue;txtSecondValue.Text = GetSecondValue;}- Đối với Form 1: Ta chỉ cần viết sự kiện cho Nút btnSend:private void btnSend_Click(object sender, EventArgs e){frmMain main = new frmMain();main.GetFirstValue = txtValue.Text; // Truyền giá trị cho Form chính thông qua thuộc tínhGetFirstValue.main.ShowDialog();this.Hide();}việc khai báo và xử lý sự kiện đối với Form 2 tương tự. Nhưng trong trường hợp này, khi lấy giátrị từ 2 Form khác nhau, cách truyền giá trị thông thường này sẽ không thể làm được. Vậy cáchkhác, ta sẽ dùng Delegate để giải quyết vấn đề:2. Sử Dụng Delegate:- Dùng Delegate sẽ giúp chúng ta quyết định xem hàm nào sẽ được trong lúc chạy. Về mặt kỹthuật, Delegate là một dạng tham chiếu được sử dụng để đóng gói 1 hàm với giá trị xác thực vàkiểu giá trị trả về.- Trong Form 1: Ta khai báo Delegate có tên là PassData có 1 tham số kiểu string và ko có giá trịtrả về.public delegate void PassData(string value);public PassData passData;private void btnSend_Click(object sender, EventArgs e){if (passData != null){passData(txtValue.Text);}this.Hide();}- Còn trong Form chính: Ta viết Hàm GetFirstValue phải giống như khi khai báo Delegate: có 1giá trị truyền vào là kiểu chuỗi, và không có giá trị trả về.public void GetFirstValue(string value){txtFirstValue.Text = value;}Ta viết sự kiện cho nút btnGetValue1:private void btnGetValue1_Click(object sender, EventArgs e){frmFirstValue first = new frmFirstValue();first.passData = new frmFirstValue.PassData(GetFirstValue);first.Show();}
Nội dung trích xuất từ tài liệu:
Sử dụng Delegate để truyền giá trị trong C# Sử dụng Delegate để truyền giá trị trong C# Để có thể viết được một ứng dụng phần mềm, bạn phải biết cách truyền giá trị qua lại giữa các Form. Tuy nhiên, khi ta muốn lấy giá trị từ nhiều Form khác, chắc chúng ta sẽ gặp rắc rối với những cách làm thông thường. Delegate sẽ giúp chúng ta giải quyết vấn đề. Trước hết, tôi sẽ trình bày cho các bạn cách truyền giá trị theo cách thông thường.Dưới đây là giao diện của các Form:Đây là giao diện của Form chính. có 2 textbox để hiển thị giá trị lấy từ các Form khác. 2 buttoncó chức năng hiển thị các form mà mình muốn lấy giá trị.Còn đây là giao diện của Form 1, Gồm 1 textbox để nhập giá trị, nút button để xác nhận giá trịđó và truyền giá trị được nhập trong ô textbox cho form chính.Tương tự như Form 1, Form 2 cũng gồm 1 textbox để nhập giá trị, nút button để xác nhận giá trịđó và truyền giá trị được nhập trong ô textbox cho form chính.1. Với việc truyền giá trị thông thường:- Trong Form Chính:// Ta khai báo trường để lưu giá trị.private string _getFirstValue = null;// Thuộc tính này có nhiệm vụ lấy giá trị từ các Form khác.public string GetFirstValue{get{return _getFirstValue;}set{_getFirstValue = value;}}Và viết sự kiện cho nút btnGetValue1:private void btnGetValue1_Click(object sender, EventArgs e){frmFirstValue first = new frmFirstValue();first.ShowDialog();}Và khi Form chính được hiển thị, ta phải hiển thị nhận được thông qua các thuộc tínhGetFirstValue.private void frmMain_Load(object sender, EventArgs e){txtFirstValue.Text = GetFirstValue;txtSecondValue.Text = GetSecondValue;}- Đối với Form 1: Ta chỉ cần viết sự kiện cho Nút btnSend:private void btnSend_Click(object sender, EventArgs e){frmMain main = new frmMain();main.GetFirstValue = txtValue.Text; // Truyền giá trị cho Form chính thông qua thuộc tínhGetFirstValue.main.ShowDialog();this.Hide();}việc khai báo và xử lý sự kiện đối với Form 2 tương tự. Nhưng trong trường hợp này, khi lấy giátrị từ 2 Form khác nhau, cách truyền giá trị thông thường này sẽ không thể làm được. Vậy cáchkhác, ta sẽ dùng Delegate để giải quyết vấn đề:2. Sử Dụng Delegate:- Dùng Delegate sẽ giúp chúng ta quyết định xem hàm nào sẽ được trong lúc chạy. Về mặt kỹthuật, Delegate là một dạng tham chiếu được sử dụng để đóng gói 1 hàm với giá trị xác thực vàkiểu giá trị trả về.- Trong Form 1: Ta khai báo Delegate có tên là PassData có 1 tham số kiểu string và ko có giá trịtrả về.public delegate void PassData(string value);public PassData passData;private void btnSend_Click(object sender, EventArgs e){if (passData != null){passData(txtValue.Text);}this.Hide();}- Còn trong Form chính: Ta viết Hàm GetFirstValue phải giống như khi khai báo Delegate: có 1giá trị truyền vào là kiểu chuỗi, và không có giá trị trả về.public void GetFirstValue(string value){txtFirstValue.Text = value;}Ta viết sự kiện cho nút btnGetValue1:private void btnGetValue1_Click(object sender, EventArgs e){frmFirstValue first = new frmFirstValue();first.passData = new frmFirstValue.PassData(GetFirstValue);first.Show();}
Tìm kiếm theo từ khóa liên quan:
Kỹ thuật lập trình Phần cứng Công nghệ thông tin Tin học Quản trị mạngTài liệu liên quan:
-
52 trang 432 1 0
-
24 trang 358 1 0
-
Top 10 mẹo 'đơn giản nhưng hữu ích' trong nhiếp ảnh
11 trang 319 0 0 -
74 trang 303 0 0
-
96 trang 297 0 0
-
Báo cáo thực tập thực tế: Nghiên cứu và xây dựng website bằng Wordpress
24 trang 291 0 0 -
Đồ án tốt nghiệp: Xây dựng ứng dụng di động android quản lý khách hàng cắt tóc
81 trang 284 0 0 -
EBay - Internet và câu chuyện thần kỳ: Phần 1
143 trang 277 0 0 -
Tài liệu dạy học môn Tin học trong chương trình đào tạo trình độ cao đẳng
348 trang 269 1 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 268 0 0