今天遇到一个奇怪的问题,在用户控件上放置一个webbrower控件,然后把这个用户控件放在一个窗体上,结果用户控件的load事件不会被执行,原因是webbrower导致用户控件的load的事件无法执行,至于具体为什么会这样,还没找到原因,但是可以采用以下两种方法解决,让用户控件的LOAD事件执行
1.在用户控件的构造函数中,把用户控件的可见性设为FALSE,在用户控件所在的窗体的LOAD事件中,把用户控件的可见性设为TRUE,代码如下
public partial class UserControl1 : UserControl { public UserControl1() { this.Visible = false; InitializeComponent(); } private void UserControl1_Load(object sender, EventArgs e) { MessageBox.Show("2"); } }
public Form3() { InitializeComponent(); } private void Form3_Load(object sender, EventArgs e) { this.userControl11.Visible = true; }
2.第二种解决办法是你建立两个用户控件,把WEBBROWR所在的用户控件放置到另一个用户控件中,把另一个用户控件放置到窗体上,
然后把WEBBROWER所在的用户控件的LOAD事件里面的方法转移到另一个用户控件的LOAD事件中执行。