永发信息网

C# UserControl

答案:6  悬赏:70  手机版
解决时间 2021-02-02 01:23
  • 提问者网友:爱了却不能说
  • 2021-02-01 15:02
C# UserControl
最佳答案
  • 五星知识达人网友:行雁书
  • 2021-02-01 15:15
可以在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吧。。。
全部回答
  • 1楼网友:深街酒徒
  • 2021-02-01 19:15
废话不多说 顶3楼
  • 2楼网友:一把行者刀
  • 2021-02-01 17:48
问题一:
UserControl里放个CLOSE按钮,加入代码:
Form form1 = this.Parent as Form;
form1.Close();
问题二:
在UserControl中加入下面事件
private void UserControl1_KeyPress(object sender, KeyPressEventArgs e)
在下面的事件中判断KEY的值....
再作处理....
  • 3楼网友:一袍清酒付
  • 2021-02-01 17:04
Form frm = this.FindForm();
if(frm!=null)
{
frm.Close();
}
  • 4楼网友:拾荒鲤
  • 2021-02-01 15:36
private void button_quit_Click(object sender, EventArgs e)
{
this.ParentForm.Close()
}
  • 5楼网友:白昼之月
  • 2021-02-01 15:31
顶楼上,如果自己不拖这个控件,我应该如果来加载这个用户自定的控件到指定的相对位置,实例化这个对象,然后加载到相对位置。这个我应该如何来完成。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯