Thursday, February 16, 2006

Thực thi sự kiện Load khi đang design form

Bạn muốn thực thi sự kiện Load khi đang design form? Hãy làm như sau nhé:

+ Tạo một form cơ sở, ví dụ:

public partial class BaseForm : Form
{

public BaseForm()
{
InitializeComponent();
}

private void BaseForm_Load(object sender, System.EventArgs e)
{
MessageBox.Show("Hello, World!");
}

}

+ Tạo một form khác thừa kế lại form cơ sở vừa tạo

public partial class MyForm : BaseForm
{

public MyForm()
{
InitializeComponent();
}

}

+ Rebuild project

+ Mở MyForm để design, bạn sẽ thấy gì nào?

Đây là sự thông minh hay sự đần độn?

Chú ý: Đã được kiểm nghiệm trên VS 2005. Chưa được kiểm nghiệm trên VS 2002, 2003.

Update:

I try to write a class that extends Form like that:

public partial class BaseForm : Form
{

public BaseForm()
{
InitializeComponent();
}

private void BaseForm_Load(object sender, System.EventArgs e)
{
MessageBox.Show("Hello, World!");
}

}

And then I write a class that extends class BaseForm

public partial class MyForm : BaseForm
{

public MyForm()
{
InitializeComponent();
}

}

I rebuild project and open MyForm to design, it suddenly appears "Hello, World!" message box.

I think it is a stupid feature in VS 2005 (I didn't check it in VS 2002, 2003 yet).

1 comment:

Anonymous said...

Muốn khỏi hiện, thêm dòng :
if (!this.DesignMode)
{...}