博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
winform继承窗体,无法修改父窗体控件问题处理笔记
阅读量:5345 次
发布时间:2019-06-15

本文共 1236 字,大约阅读时间需要 4 分钟。

问题描述:

一个窗体集成父窗体,发现无法直接修改父窗体的控件,比如修改大小等,父窗体控件已经设置为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;            }        }    }

原文链接:

转载于:https://www.cnblogs.com/GarsonZhang/p/5078218.html

你可能感兴趣的文章
Ubuntu改坏sudoers后无法使用sudo的解决办法
查看>>
NEYC 2017 游记
查看>>
[搬运] 写给 C# 开发人员的函数式编程
查看>>
Python之旅Day14 JQuery部分
查看>>
core--线程池
查看>>
redux-effect
查看>>
Android轻量级的开源缓存框架ASimpleCache
查看>>
他山之石:加载图片的一个小问题
查看>>
shell - 常识
查看>>
mssql sqlserver 使用sql脚本 清空所有数据库表数据的方法分享
查看>>
分层图最短路【bzoj2763】: [JLOI2011]飞行路线
查看>>
linux下编译复数类型引发的错误:expected unqualified-id before '(' token
查看>>
codeforces 1041A Heist
查看>>
Spring Cloud Stream消费失败后的处理策略(三):使用DLQ队列(RabbitMQ)
查看>>
bzoj1048 [HAOI2007]分割矩阵
查看>>
Java中的编码
查看>>
PKUWC2018 5/6
查看>>
As-If-Serial 理解
查看>>
洛谷P1005 矩阵取数游戏
查看>>
在Silverlight中使用HierarchicalDataTemplate为TreeView实现递归树状结构
查看>>