2009-02-17 27 views
17

Tôi có một biểu mẫu được tạo động. Nó là một ứng dụng winForms.Tại sao sự kiện xác thực của tôi không kích hoạt trong C#?

Biểu mẫu này chỉ là một menu và một loạt các hộp văn bản và nhãn. Vì lợi ích của ví dụ này, bạn có thể bỏ qua các nhãn.

Vấn đề của tôi là: Khi tôi chỉnh sửa nội dung trong hộp văn bản, sau đó nhấp vào menu để phát hành "Lưu", văn bản từ hộp văn bản cuối cùng vẫn chưa đưa ra phương thức "Xác thực". Điều này có vẻ là do điều khiển vẫn có tiêu điểm và menu nằm trong một chuỗi riêng biệt.

Làm cách nào để bắt buộc các sự kiện xác thực sẽ kích hoạt khi người dùng nhấp vào "lưu"? Tôi không biết người dùng đang sử dụng hộp văn bản nào (nếu có) và phát hành SomeKnownControl.Focus(); trong chức năng "lưu" dường như không hữu ích.

Trả lời

28

Tôi đã có điều này trước đây. Trong biểu mẫu:

private void SaveButtonClick(...) 
{ 
    if (this.ValidateChildren()) 
    { 
     // do save 
    } 
} 

ValidateChildren on MSDN

+0

Đó là nó !!!! Cảm ơn bạn!! – Jerry

+0

Không phải là một vấn đề ... Nó cũng làm tôi bối rối. – geofftnz

+1

Hmmm ... Tôi nghĩ rằng vấn đề với điều này là nó kích hoạt sự kiện Validating trên tất cả các điều khiển con, không chỉ là một trong đó đã tập trung. –

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