我想知道Control.FindForm
和ContainerControl.ParentForm
之间是否有任何功能上的 (或其他方面的) 区别? 在创建自己的用户控件时,我一直在使用.ParentForm
,但是否有任何理由使用 .FindForm
会是更好的选择呢?从我所了解的情况来看,它们总是返回相同的表单(即用户控件所在的表单或null)。.ParentForm
只是调用了.FindForm
吗?还是两者在某些情况下可能不同(例如对于 mdi 窗口)?
我想知道Control.FindForm
和ContainerControl.ParentForm
之间是否有任何功能上的 (或其他方面的) 区别? 在创建自己的用户控件时,我一直在使用.ParentForm
,但是否有任何理由使用 .FindForm
会是更好的选择呢?从我所了解的情况来看,它们总是返回相同的表单(即用户控件所在的表单或null)。.ParentForm
只是调用了.FindForm
吗?还是两者在某些情况下可能不同(例如对于 mdi 窗口)?
它们有微妙的不同。当在顶级表单上调用ParentForm时,它将返回null,因为它没有父级。但FindForm()不会返回null,它返回自身。而且ParentForm会进行安全要求,但FindForm()则不会。它们在内部实现上基本相同。Winforms本身根本不使用ParentForm,我建议忽略它。