FormWindowState.Maximized的陷阱
MDI父窗体下面有很多子窗体。子窗体打开时都是以FormWindowState.Maximized的属性打开的,但是结果部分如意,部分奇怪。
先贴上单实例的代码:
static TestForm _singleTon;
public static void ShowSingleTon(FormWindowState windowState = FormWindowState.Maximized, Form parent = null)
{
if (_singleTon == null || _singleTon.IsDisposed)
_singleTon = new ProductSetting(count);
if (parent != null)//设置父窗口,以及对代理赋值
{
_singleTon.MdiParent = parent;
}
if (_singleTon.WindowState != windowState) _singleTon.WindowState = windowState;
if (Setting.SetFrontWindow != null && _singleTon.IsHandleCreated) Setting.SetFrontWindow(_singleTon.Handle);
_singleTon.Show();
}
如此,调用TestForm.ShowSingleTon就能显示出单实例的窗口了。
但是同样的单实例实现逻辑,几个窗口最大化的效果却不一样,一部分的确是最大化的,另一部分子窗口是初始化的大小,虽然最小化和关闭的按钮是正常。
对比几个窗口的其余的代码,发现出问题的窗口在窗口设计界面,就设置了FormWindowState.Maximized
而正常显示的窗口这里是默认Normal值。
将窗口的maximized还原成Normal之后,问题解决了。
这里只能猜测,WindowState的属性值在修改时会触发窗口Size的重新计算,在需要的时候修改这个值,可以得到正确的结果。
症结点很坑爹。以后要更注意。
FormWindowState.Maximized的陷阱的更多相关文章
- 【基于WinForm+Access局域网共享数据库的项目总结】之篇一:WinForm开发总体概述与技术实现
篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...
- C# Winform代码片段-大二下学期的垃圾代码
1.图片缩放 using System; using System.Windows.Forms; using System.Drawing; class haha : Form { static vo ...
- Winform窗体最大化的时候,如何指定窗体的位置、大小
一.重写窗体的SizeChanged事件不能改变窗体最大化的位置和大小. public partial class Form2 : Form { public Form2() { Initialize ...
- Winform MDI窗体容器、权限、简单通讯
MDI窗体容器: 一般来说,窗体是顶级容器,不允许放在其他任何容器内,但是如果将某个窗体的IsMdiContainer属性设置为True,那此窗体就会成为窗体容器,可以在其中放入其他窗体 在内部的窗体 ...
- [Tool] csdn客户端开发(非官方版)
偶尔间看到一篇博客[清山博客]里讲述了他自己开发的一个CSDN博客客户端,并去下载体验了一下,然后就自己手痒也要开发一下 先看看结果图: 在文章列表里,鼠标右键可以操作[置顶.删除.评论权限]: 下面 ...
- C#-WinForm-MDI窗体容器、权限设置
MDI窗体容器 - 放窗体的容器 窗体时顶级控件,是不允许放到其他的控件或窗体中的 (李献策lxc) 窗体属性中有一个属性:IsMdiContainer - 确定该窗体是否是MDI容器 在窗体中放一个 ...
- WinForm/MIS项目开发之中按钮级权限实践
一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...
- 犀利的报表系统,发票据与报表开发的快速利器,AgileEAS.NET SOA中间件GReport使用指南
一.前言 AgileEAS.NET SOA 中间件平台是一款基于基于敏捷并行开发思想和Microsoft .Net构件(组件)开发技术而构建的一个快速开发应用平台.用于帮助中小型软件企业建立一条适合市 ...
- 另一种在WINFORM中使用XNA的方法
之前在写化学分子模型制作程序的时候,使用一种方法,将WINFORM控件嵌入到XNA窗体中,从而实现了即使用WINFORM窗体控件又使用XNA.最近在写另一个物理运动学课件制作程序,同样使用XNA,但从 ...
随机推荐
- C#基础第一天-作业答案
题一答案: Console.WriteLine("请输入a"); int a = Convert.ToInt32(Console.ReadLine()); Console.Writ ...
- AR模型与数据平稳性之间的关系
作者:桂. 时间:2017-12-19 21:39:08 链接:http://www.cnblogs.com/xingshansi/p/8068021.html 前言 前几天碰到一个序列分析的问题, ...
- Python常见问题系列
Python基础题1.冒泡排序 def mao_pao(li): for i in range(len(li)): for j in range(len(li)): if li[i] < li[ ...
- 使用memcache处理缓存的三种方案
这篇文章主要讨论的问题是:如何为项目设计一个完整而简洁的缓存系统.只讲做法,不讲原理.在我们项目中,使用到了三种方法,来保证了缓存系统的有效简洁. 1) 第一种,最常见的方式 读取数据的主要步骤如下: ...
- Android log 日志分析
一. Log 日志中 Bug 类型 程序异常强制关闭: Force Close ,Fatal 程序无响应: Application Not Response , ANR(应用无响应).一般是主线程超时 ...
- RecyclerView中实现headerView,footerView功能
之前用com.bartoszlipinski.recyclerviewheader.RecyclerViewHeader 不过局限性有点大. (com.bartoszlipinski.recycler ...
- android笔记---ScrollView
<!--在创建xml文件的时候选择ScrollView类型--> <?xml version="1.0" encoding="utf-8"?& ...
- Nexus 搭建maven 私有仓库
nexus如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地,而一个团队中的所有人都重复的从maven仓库下载构件无疑加大了仓库的负载和浪费了外网带宽,如 ...
- 每日英语:The Delicate Protocol Of Hugging
I'm not a hugger. When I see a registered personal-space invader coming my way at a party, the music ...
- python(58):python下划线
详解Python中的下划线 本文将讨论Python中下划线(_)字符的使用方法.我们将会看到,正如Python中的很多事情,下划线的不同用法大多数(并非所有)只是常用惯例而已. 单下划线(_) 通常情 ...