首页 > Windows开发 > 详细

winform继承窗体,无法修改父窗体控件问题处理笔记

时间:2015-12-26 16:49:51      阅读:287      评论:0      收藏:0      [点我收藏+]

问题描述:

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

 

特征:

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

异常技术分享正常情况技术分享

 

原因:

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

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

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

 

解决办法:

一、去掉这句话

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

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.html

winform继承窗体,无法修改父窗体控件问题处理笔记

原文:http://www.cnblogs.com/GarsonZhang/p/5078218.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!