日期:2014-05-18 浏览次数:20872 次
private void UserControl1_ParentChanged(object sender, EventArgs e) { Control ctl = this.Parent; }
------解决方案--------------------
如果直接把代码写死在form的active事件中是可以,但问题是我的usercontrol并不知道自己会被哪个form引用,故这种方式也是没法用
查 Form.ActiveForm
------解决方案--------------------
为什么要得到parentform?
parentform是个没办法确定的东西
就算得到又能怎么样?
你可以在你的UserControl中定义事件
然后再窗体监视这个事件不就结了么
或者定义一个public的方法
等着parentform调用
------解决方案--------------------
在parentForm中设置userControl的Tag为parentForm
在userControl中就可以通过Tag访问parentForm。试试
------解决方案--------------------
VisibleChanged事件,
if(this.Visible)
------解决方案--------------------
usercontrol.ParentControl属性,就是你要的form了.
我记得有这个属性.
------解决方案--------------------
UserControl1_ParentChanged
这个解决不了你的问题吗?
还有你想知道usercontrol的parentForm.
可以递归查找啊.
如果parent是Form,就找到了,如果不是,继续查找他的Parent.
------解决方案--------------------
UserControl也是Window,所以如果lz想要Activate事件或者时机可以通过WM_ACTIVATE消息来判断,如果WParam是WA_ACTIVE,WA_CLICKACTIVE均是激活,只有WA_INACTIVE是不激活(具体值记不清了,lz自己去MSDN查一下吧