2009-06-03 25 views

Trả lời

0

Điều khiển biểu mẫu không có vòng đời theo cùng một nghĩa mà các điều khiển biểu mẫu web asp.net thực hiện. Sự kiện giao diện người dùng xảy ra khi người dùng thực hiện điều gì đó để khiến họ xảy ra.

8

Điều đó thực sự phụ thuộc vào thời điểm bạn đang nói về cuộc sống của nó. Với dự đoán của bạn tại Load, chúng ta sẽ nói trong quá trình tạo/tải. Danh sách này cho thấy một vài sự kiện theo thứ tự mà họ đã bị sa thải trong một UserControl đơn giản mà tôi thiết lập để thử nghiệm (nối một số eventlisteners và in tên sự kiện vào giao diện điều khiển):

HandleCreated 
Load 
Layout 
VisibleChanged 
Paint 

Lưu ý rằng Layout , VisibleChanged và Paint không có bất kỳ điều gì liên quan đến việc tạo kiểm soát; Bố trí và đặc biệt Sơn có thể hoặc sẽ được nâng lên tại một số trường hợp trong suốt vòng đời của điều khiển. Điều tương tự cũng xảy ra với VisibleChanged được nâng lên bất cứ khi nào giá trị của thuộc tính Visible được thay đổi.

+1

+1 - bạn đã đánh bại tôi. Tôi nhận được kết quả tương tự - Paint là cuối cùng. Cũng lưu ý rằng CreateControl xảy ra giữa HandleCreated và Load, và PaintBackground xảy ra trước khi Paint. –

+0

@Jon B: không có sự kiện PaintBackground, nhưng có phương thức OnPaintBackground được bảo vệ (trông rất giống với phương thức tăng sự kiện tiêu chuẩn của bạn, nhưng điều đó không làm tăng bất kỳ sự kiện nào). Dù bằng cách nào, CreateControl và OnPaintBackground chỉ có thể được sử dụng bên trong điều khiển người dùng, không phải từ mã bên ngoài (chẳng hạn như biểu mẫu lưu trữ điều khiển). –

+0

@Jon B: quên đề cập đến; điểm tốt với hai phương pháp đó vẫn còn! :) –

Các vấn đề liên quan