ứng dụng Startup và Shutdown Sự kiện
Mẫu và các lớp học kiểm soát phơi bày một bộ các sự kiện liên quan đến ứng dụng khởi động và tắt máy. Khi một ứng dụng Windows Forms bắt đầu, những sự kiện khởi động dạng chính được nuôi trong trình tự sau:
System.Windows.Forms.Control.HandleCreated
System.Windows.Forms.Control.BindingContextChanged
System.Windows.Forms.Form.Load
System.Windows.Forms.Control.VisibleChanged
System.Window s.Forms.Form.Kích hoạt
System.Windows.Forms.Form.Shown
Khi một ứng dụng đóng lại, các sự kiện tắt máy có dạng chính được huy động theo thứ tự sau:
System.Windows.Forms.Form .Closing
System.Windows.Forms.Form.FormClosing
System.Windows.Forms.Form.Closed
System.Windows.Forms.Form.FormClosed
System.Windows.Forms.Form.Deactivate
Bạn đang sử dụng một MessageBox trong bất kỳ sự kiện khởi động của bạn? Điều này có thể khiến các sự kiện xuất hiện để kích hoạt không đúng thứ tự vì cách Windows Forms Message Loop xử lý các cửa sổ hộp thoại.
@HansaA: +1. Ngay cả trong một trong những ứng dụng MDI hiện có của tôi, tôi đã tìm thấy hành vi này. Trong Winform tươi hoặc MDI đây không phải là một vấn đề. – Mahin
Cảm ơn Mahin và Ash đã dành thời gian để điều tra điều này. Có vẻ như bạn về cơ bản không thể đưa ra bất kỳ giả định nào về thứ tự của hai sự kiện này. Tôi nhận ra rằng tôi có thể di chuyển mã được tải vào một phương thức được gọi là từ hàm tạo của biểu mẫu, vì vậy tôi nghĩ rằng tôi đã giải quyết được vấn đề của mình theo cách đó. Đối với sự kiện được hiển thị: chúng tôi có phiên bản 1.1 của ứng dụng, vì vậy chúng tôi không thể sử dụng ngay cả khi được giới thiệu trong phiên bản 2.0. – HansA
@HansA: Thứ tự rõ ràng là Laod, Kích hoạt, Hiển thị .... Nhưng khi bạn đang gặp vấn đề trong một trường hợp, tôi cũng nhận được cùng một vấn đề. – Mahin