Windows 窗体用户控件属性在生成时执行代码

本文关键字:执行 代码 窗体 用户 控件 属性 Windows | 更新日期: 2023-09-27 18:36:35

我在C# Windows Forms上有一个用户控件。每次生成项目时,都会触发属性上的代码并显示消息框。有人知道为什么吗?

public string Name 
{
    get
    {
        if(xpto != null) 
        { 
            return mystring;
        }
        else
        {
            MessageBox.Show("message");
            return string.Empty;
        }
    }
}

Windows 窗体用户控件属性在生成时执行代码

在我看来,在

调用属性之前没有设置"xpto"。只要尚未设置"xpto"(或已设置为 null),您的代码就会运行"else"分支。

这意味着,在初始化"xpto"

之前,代码中的某些内容正在调用您的属性"Name"(或者,您自己将"xpto"设置为null)。因此,当调用"名称"时,"xpto"将为空,并且显示消息框。

编辑:此外,如果它是在构建时发生的,那可能是因为设计师不会设置"xpto"本身。相反,它使用它关心的属性,例如"名称"、"文本"等。因此,当设计器调用"Name"时,它事先没有考虑"xpto",当设计器到达属性"Name"时,"xpto"将为null。