C# UserControl

2024-12-28 13:08:22
推荐回答(5个)
回答1:

可以在form_load事件里把this传给usercontrol,然后在usercontrol里调用form的各种方法,不过这种做法不太好,耦合性较高。
标准做法是用事件传递
usercontrol里加如下代码:
public delegate void FormCloseEventHandler(object sender, EventArgs e);

public event FormCloseEventHandler FormClose;

private void button_quit_Click(object sender, EventArgs e)
{
if (this.FormClose != null)
{
FormClose(this, new EventArgs());
}
}

在form里添加如下代码:
form_load事件里:
this.userControl.FormClose += new UserControl.FormCloseEventHandler(this.userControl_FormClose);

单独的方法:
private void userControl_FormClose(object sender, EventArgs e)
{
this.Close();
}

后面的enter和Esc都可参考以上方法解决,关于事件的用法再去查查msdn吧。。。

回答2:

private void button_quit_Click(object sender, EventArgs e)
{
this.ParentForm.Close()
}

回答3:

问题一:
UserControl里放个CLOSE按钮,加入代码:

Form form1 = this.Parent as Form;
form1.Close();

问题二:
在UserControl中加入下面事件
private void UserControl1_KeyPress(object sender, KeyPressEventArgs e)
在下面的事件中判断KEY的值....
再作处理....

回答4:

Form frm = this.FindForm();
if(frm!=null)
{
frm.Close();
}

回答5:

废话不多说 顶3楼