窗体控件visible属性问题

近日在检查一个程序代码的时候,发现有一处的行为有点异常。我原本是在窗体的构造器中检测控件的visible属性,然后决定一些操作。但发现那个visible属性一直为false,不禁诧异。

后来转念一想,在构造器中,控件并没有显示出来,那么它的visible理应确实为false. 那么,该如何解决这个问题呢?

其实也简单,只要把这些代码移动到OnLoad中即可。

protected override void OnLoad(EventArgs e)
{
    base.OnLoad(e);
    try
    {
        //读取所有的选项
        if (GeneralSettings.Visible)
        {
            chkuploadFile.Checked = Utility.ReadAppSetting("UpLoadContentFile") == "1";
            chkValidation.Checked = Utility.ReadAppSetting("RequiredValidation") == "1";
            chkEncrypt.Checked = Utility.ReadAppSetting("RequiredEncryption") == "1";
            chkcompress.Checked = Utility.ReadAppSetting("RequiredCompression") == "1";
        }
        //chkValidatePreviousMonth.Checked = Utility.ReadAppSetting("ValidatePreviousMonthData") == "1";
        txtConnectionStrings.Text = ConfigurationManager.ConnectionStrings["SqlServices"].ConnectionString;
    }
    catch (Exception ex)
    {
        Utility.ShowErrorMessage("读取配置文件出错,请通知管理员 : " + ex.Message);
    }
}

原文地址:https://www.cnblogs.com/chenxizhang/p/1417317.html