này có thể đi qua như vô cùng ngu ngốc, nhưng tôi không thể tìm ra nếu:C khối # Trình duyệt web kiểm soát của cha mẹ tải sự kiện
- Tôi là một thằng ngốc
- tôi đã hiểu lầm gì đó
- Trình duyệt MS Web kiểm soát bị lỗi
Tôi thích nghĩ rằng đó là thứ hai.
Tôi có một điều khiển Trình duyệt web trong điều khiển người dùng WinForms. Nó đã được thêm vào sự kiểm soát tại thời điểm thiết kế, và theo lý thuyết, trong sự kiện Load của điều khiển nó sẽ điều hướng đến Google.
Có vẻ đơn giản.
Tuy nhiên.
public partial class TVHost : UserControl
{
public TVHost()
{
InitializeComponent();
}
private void TVHost_Load(object sender, EventArgs e)
{
webBrowser1.Navigate("http://google.co.uk");
}
}
Điều này không hiệu quả. Không có lỗi, chỉ là không có gì. Chèn một điểm ngắt/dòng gỡ lỗi cho tôi thấy rằng sự kiện Load thậm chí không được gọi.
Tôi đã quyết định tại thời điểm này để kiểm tra xem sự kiện tải có đang được đặt chính xác trong tệp Designer.cs hay không.
this.Load += new System.EventHandler(this.TVHost_Load);
Có vẻ hợp pháp.
Nếu tôi xóa điều khiển trình duyệt web khỏi biểu mẫu, sự kiện tải sẽ kích hoạt.
Tôi không hiểu điều này một chút, làm thế nào để một biện pháp ngăn chặn một phương pháp sử dụng phương pháp này để kích hoạt ngay từ đầu?
Di chuyển trên, tôi thấy điều này: http://social.msdn.microsoft.com/Forums/en-US/Vsexpressvcs/thread/d6e427b2-9cc9-4318-bb05-11363025e3f7/
TL; DR cho liên kết như sau: "Load sẽ không hoạt động nếu bạn có một webbrowser về hình thức mà được thiết lập để Visible = true"
Vì vậy, chắc chắn là địa ngục, nếu tôi thay đổi chế độ hiển thị mặc định của trình duyệt web thành sai, sự kiện tải của điều khiển sẽ kích hoạt. Tôi có thể khắc phục sự cố bằng cách đặt chế độ hiển thị của trình duyệt trong sự kiện tải.
private void TVHost_Load(object sender, EventArgs e)
{
webBrowser1.Visible = true;
webBrowser1.Navigate("http://google.co.uk");
}
Rất lạ.
Trong khi tác vụ "sửa lỗi" này, tôi thấy nó vô cùng khó khăn và tự hỏi liệu có ai có giải thích về hành vi này không?
Thật ngạc nhiên tôi đã tìm thấy lỗi này trong MS Connect, còn sót lại 2005-http://connect.microsoft.com/VisualStudio/feedback/details/116535/when-adding-a-webbrowser-control-to-a-user-control-the-load-will-not-fire#
Kiểm tra điều này http://stackoverflow.com/questions/2220483/usercontrol-load-event-not-fired – V4Vendetta
Đã thử rằng @ V4Vendetta, cũng không hoạt động. Dù sao cũng cảm ơn bạn. – KingCronus
Một chút Googling đã dẫn đến việc tôi tìm thấy nhiều tài liệu tham khảo cho lỗi này, tôi không thấy bất kỳ sửa chữa tốt hơn so với hiện tại của tôi đặt nó để vô hình đầu tiên. * sadface * – KingCronus