gpt4 book ai didi

c# - parentForm Reference怎么为null?

转载 作者:太空狗 更新时间:2023-10-29 22:53:50 27 4
gpt4 key购买 nike

我有一个应用程序,我在其中的表单上添加了一个用户控件。当我在 userControl 构造函数中检查 this.parentForm 时,它给出了一个空引用

我的用户控制代码是这样的

public UserControl1()
{
InitializeComponent();
if (this.ParentForm != null)//ParentReference is null
{
MessageBox.Show("Hi");//Does Not get Called
}
}

最佳答案

当控件被创建时,它还没有被添加到表单中——所以父表单当然是空的。

即使您通常将其写成:

// Where form might be "this"
form.Controls.Add(new UserControl1());

你应该把它想象成:

UserControl1 tmp = new UserControl1();
form.Controls.Add(tmp);

现在你的构造函数在第一行执行,但是第一次提到form是在第二行...所以控件如何能看到它?

您可能应该处理 ParentChanged事件,然后采取适当的行动。 (如果您不使用 Windows 窗体,我深表歉意 - 我确信其他 UI 框架也有等效项;下次如果您能说明您在问题中使用的是什么,将会很有用。)

关于c# - parentForm Reference怎么为null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8784551/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com