Vượt qua các biến giữa Windows Forms Windows mà không cần ShowDialog ()

Vượt qua các biến giữa Windows Forms Windows mà không cần ShowDialog ()
Vượt qua các biến giữa Windows Forms Windows mà không cần ShowDialog ()

Video: Vượt qua các biến giữa Windows Forms Windows mà không cần ShowDialog ()

Video: Vượt qua các biến giữa Windows Forms Windows mà không cần ShowDialog ()
Video: Hướng dẫn TẤT TẦN TẬT về sử dụng nhiều màn hình trên PC - YouTube 2024, Có thể
Anonim

Khi bạn lập trình ứng dụng Windows Forms, bạn sẽ luôn cần phải nhận các biến từ cửa sổ biểu mẫu thứ hai, chẳng hạn như biểu mẫu tùy chọn hoặc lời nhắc tìm kiếm bật lên.

Hầu hết các hướng dẫn ở đó sẽ cho bạn biết rằng bạn phải mở biểu mẫu thứ hai bằng ShowDialog (), ngăn người dùng thực hiện bất kỳ việc gì khác cho đến khi họ đóng cửa sổ biểu mẫu thứ hai. Ví dụ: điều này sẽ không hoạt động tốt cho hộp thoại tìm / thay thế. Nó cũng sẽ không hoạt động tốt cho các biểu mẫu bật lên được vẽ tùy chỉnh.

Cách nhanh chóng để chuyển các biến giữa các biểu mẫu là sử dụng các đại biểu. Bạn có thể thiết lập một eventhandler cho sự kiện Closing của biểu mẫu thứ hai và xử lý sự kiện ở dạng đầu tiên. Điều này cho phép bạn nắm bắt các biến trước khi cửa sổ biểu mẫu thứ hai đóng lại.

Đối với bài tập này, chúng ta sẽ giả định rằng chúng ta có hai dạng:

MainForm

OptionsForm

Chúng tôi sẽ tiếp tục giả định rằng chúng tôi đã nhấp vào một số loại nút mở OptionsForm bằng một cuộc gọi phương thức Show (). Bây giờ chúng ta hãy nhìn vào ma thuật:

……. snip…….

OptionsForm theform = new OptionsForm(); theform.Closing += new CancelEventHandler(theform_Closing); theform.Show();

}

private void theform_Closing(object sender, CancelEventArgs e) {

OptionsForm theform = (OptionsForm)sender;

// Grab the variable from the options form. The options form should set this variable before it closes, and the variable should be marked as public. string localvar = theform.thestringvariable;

}

Thats tất cả để có nó.

Đề xuất: