Quote Được gửi bởi Heo còi View Post
Em tạo 1 MDIform trong đó có chứa 1 childform , trong childform có 1 nút. Khi bấm nút này sẽ load 1 form khác dạng showdialog , khi đóng form này em cần activeate childform trong MDIform vậy em phải làm sao?
Đây là code của em:

code trong class:
public class MoForm
{
public static Form QLCP;
public static Form frm1;
public static Boolean nutok = false;
}

code trong MDI form:
private void QLCP_Load(object sender, EventArgs e)
{
MoForm.QLCP = this;
}

code trong child form:
private void formBanHang_Load(object sender, EventArgs e)
{
MoForm.frm1 = this;
Tan(); // this procedure is use to load listbox1
}

private void Button1_Click(object sender, EventArgs e)
{
Form frm = new frm2();
//frm.MdiParent = this.MdiParent; (1)
//frm.Show(); (2)
frm.ShowDialog(); (3)
}

private void frm1_Activated(object sender, EventArgs e)
{
if (MoForm.nutok == true)
{
TaoBan();
listbox1.Show();
MoForm.nutok = false;
}
}

code trong form dialog:
private void Button2_Click(object sender, EventArgs e)
{
MoForm.nutok = true;
………..thao tác với listbox
this.Close();
}

private void frm2_FormClosed(object sender, FormClosedEventArgs e)
{
MoForm.QLCP.Activate();

Form frm = QLCP.ActiveForm;
foreach (Form f in frm.MdiChildren)
{
if (f.Name == "formBanHang")
{
f.Activate();
}
}
}

Nếu em cho frm2 load lên lf form con của QLCP thì bằng câu lệnh (1),(2) thì em activate được frm1, nhưng nếu là load ở dạng modal thì khi frm2 đóng lại em không activate được frm1, mặc dù em đã lưu vết của frm1 và activate nhưng không được. Mong mọi người chỉ giúp em để nạp lại list box.