Control.FindForm和ContainerControl.ParentForm之间有什么区别

TKT*_*KTS 7 .net windows winforms

我想知道如果有之间的任何功能(或其他方式)的区别Control.FindFormContainerControl.ParentForm?我.ParentForm在创建自己的用户控件时一直在使用,但是有什么理由.FindForm会是更好的选择吗?从我所知道的,他们总是返回相同的形式(即用户控件所在的表单,或null).难道.ParentForm只是打电话.FindForm或者是有一个时间,其中两个可以是不同的(可能与MDI窗口)?

Han*_*ant 11

它们略有不同.当您在顶层窗体上调用它时,ParentForm将返回null,因为它没有父窗体.FindForm()不会,它会返回自己.而ParentForm提出了安全性要求,FindForm()没有.否则他们使用相同的内部实现.Winforms本身根本不使用ParentForm,我会忽略它.

  • 好,谢谢。你能解释一下 ParentForm 的安全需求是什么意思吗?或者给我指点一下以供参考? (2认同)
  • CodeAccessPermission类.Winforms允许沙盒控件,因此它不能修改它的父级.这没有其他文件证明.或者与99.7%的Winforms项目相关. (2认同)