Tôi có biểu mẫu Form1
mà từ đó tôi hiển thị Form2
dưới dạng hình thức phương thức. Từ Form2
Tôi thực hiện tất cả các loại chỉnh sửa và xóa các tập hợp giá trị khác nhau sẽ được phản ánh trong Form1
sau khi đóng Form2
. Vì vậy, những gì tôi làm là RePopulateControls_in_Form1()
sau khi đóng Form2
. Vì RePopulateControls_in_Form1()
là một quá trình dài, tôi chỉ muốn thực hiện phương thức đó nếu một số sửa đổi (chỉnh sửa, thêm, xóa) xảy ra trong Form2
và không khi nào Form2
vừa được mở và đóng.DialogResult không đóng biểu mẫu?
Vì vậy, đây là những gì tôi cố gắng làm trong Form1
:
Form2 f = new Form2();
if (f.ShowDialog(this) == DialogResult.Something)
RePopulateControls_in_Form1()
Và sau đó trong Form2 tôi làm,
private void bntEdit()
{
//If Edit?
this.DialogResult = DialogResult.Something;
}
private void bntAdd()
{
//If Add?
this.DialogResult = DialogResult.Something;
}
private void bntDelete()
{
//If Delete?
this.DialogResult = DialogResult.Something;
}
Nhưng vấn đề của tôi là .Something
. Nếu nó là bất cứ điều gì khác hơn là .None
, Form2
đơn giản bị đóng. Tôi không muốn Form2
đơn giản đóng cửa trừ khi người dùng đóng nó.
Nếu tôi làm điều này:
RePopulateControls_in_Form1()
không trúng!
Tóm lại, trong chương trình của tôi làm thế nào tôi có thể yêu cầu trình biên dịch gọi RePopulateControls_in_Form1()
chỉ khi các giá trị được sửa đổi trong Form2
?
Lưu ý: Khả năng Repopulating chắc chắn là bắt buộc vì các điều khiển được tạo động và phức tạp một chút (thực ra cái được tạo ra trong Form2
là các điều khiển GUI và nhãn của nó vv).
OK Tôi nhận được phần đầu tiên, nhưng logic thứ hai không phải là một kỹ thuật mã hóa phù hợp! – nawfal
Tại sao nó không? Trong trường hợp trên, tôi sẽ sử dụng một sự kiện. Tuy nhiên nếu có một giá trị được sử dụng trong suốt một ứng dụng có 20 hình thức và mười lần mà nhiều lớp học như thế nào bạn sẽ đảm bảo rằng chỉ có một giá trị được sử dụng. Bạn có muốn chuyển giá trị từ form sang form và class tới class thông qua một tham số constructor hay các thuộc tính .... – ScruffyDuck
Đây là một cái gì đó đơn giản như việc thiết lập một flag để Form1 biết gì đó về Form2.Tại sao một biến toàn cục không phải là luồng an toàn? Tôi hiểu ý nghĩa của một biến toàn cầu chung khi bạn phải sử dụng nó trên 220 lớp như bạn đã đề cập ở trên. Nhưng ở đây, không chỉ chúng ta nên tránh các biến tĩnh, mà ngủ trong suốt vòng đời của ứng dụng, càng nhiều càng tốt, nhưng quan trọng hơn tôi tự hỏi làm thế nào bạn sẽ thấy trước yêu cầu được đề cập trong câu hỏi mở rộng ra được một cái gì đó như lớn để được tuyển dụng trong 220 lớp học từ câu hỏi đơn giản của tôi :) – nawfal