winform继承窗体,没法修改父窗体控件,添加控件也没法修改大小

问题描述:

一个窗体集成父窗体,发现没法直接修改父窗体的控件,好比修改大小等,父窗体控件已经设置为public,若是作成一个dll被引用无此问题html

特征:

不由使父窗体控件,就算新加一个控件也会这样:鼠标放到控件移动手方块上会出现一个“继承的控件”的tooptip,设计模式

异常111正常状况222ide

 

缘由:

父窗体设置了WindowState属性为:System.Windows.Forms.FormWindowState.Maximized函数

在父窗体的designer.cs中有这么一句话:oop

this.WindowState = System.Windows.Forms.FormWindowState.Maximized;

 

解决办法:

1、去掉这句话this

2、放在窗体构造函数中,在这句话前面加上判断,若是VS处于设计模式,就返回spa

public frmBaseChild()
        {
            InitializeComponent();            if (CheckDesingModel.IsDesingMode) return;//若是处于设计模式,返回
            this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
        }

 

CheckDesingModel类:设计

复制代码

internal class CheckDesingModel
    {        public static bool IsDesingMode
        {            get
            {                bool ReturnFlag = false;                if (LicenseManager.UsageMode == LicenseUsageMode.Designtime)
                    ReturnFlag = true;                else if (System.Diagnostics.Process.GetCurrentProcess().ProcessName == "devenv")
                    ReturnFlag = true;                //if (ReturnFlag)                //    Msg.Warning("设计模式");                //else Msg.Warning("非设计模式!");
                return ReturnFlag;
            }
        }
    }

复制代码

原文连接:http://www.cnblogs.com/GarsonZhang/p/5078218.htmlcode

直接在基类窗口中将 WindowState状态改为normal 恢复。orm

相关文章
相关标签/搜索