问题描述
我不知道是否有与 Control.FindForm
和 ContainerControl.ParentForm
?我一直在使用 .ParentForm
创建我自己的用户控制,但会有任何原因,当 .FindForm
将是一个更好的选择?从我可以告诉,他们总是返回相同的形式(即形式的用户控件上,或者为null)。为 .ParentForm
只是打电话 .FindForm
或者是有一个时间,这两个可以是不同的(可能与MDI视窗) ?
I'm wondering if there is any functional (or otherwise) difference between Control.FindForm
and ContainerControl.ParentForm
? I've been using .ParentForm
when creating my own user controls but would there be any reason .FindForm
would be a better choice? From what I can tell, they would always return the same form (ie. the form the user control is on, or null). Is .ParentForm
just calling .FindForm
or is there a time where the two could be different (maybe with mdi windows)?
推荐答案
他们是微妙的不同。当你在一个顶级窗体调用它,因为它没有父ParentForm将返回null。 FindForm()不会,它会返回自己。而ParentForm使得安全性的需求,FindForm()不会。他们以其他方式使用相同的内部实现。的WinForms本身完全不使用ParentForm,我会忽略它。
They are subtly different. ParentForm will return null when you call it on a toplevel Form since it has no parent. FindForm() will not, it returns itself. And ParentForm makes a security demand, FindForm() does not. They otherwise use the same internal implementation. Winforms itself doesn't use ParentForm at all, I would ignore it.
这篇关于Control.FindForm和ContainerControl.ParentForm之间的区别是什么的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!