Winform窗体最大化的时候,如何指定窗体的位置、大小
一、重写窗体的SizeChanged事件不能改变窗体最大化的位置和大小。
- public partial class Form2 : Form
- {
- public Form2()
- {
- InitializeComponent();
- }
- private void Form2_SizeChanged(object sender, EventArgs e)
- {
- int height, width, newformx, newformy;
- height = System.Windows.Forms.SystemInformation.WorkingArea.Height;
- width = System.Windows.Forms.SystemInformation.WorkingArea.Width;
- switch (this.WindowState)
- {
- case FormWindowState.Maximized://最大化操作
- this.Width = width;
- this.Height = height - 50;
- newformx = 0;
- newformy = 50;
- this.SetDesktopLocation(newformx, newformy);
- break;
- case FormWindowState.Normal://默认窗口大小
- this.Width = 808;
- this.Height = 618;
- newformx = 0;
- newformy = 50;
- this.SetDesktopLocation(newformx, newformy);
- break;
- }
- }
- }
二、重写WndProc方法得以实现。
- public partial class Form2 : Form
- {
- private const long WM_GETMINMAXINFO = 0x24;
- public struct PointAPI
- {
- public int x;
- public int y;
- }
- public struct MinMaxInfo
- {
- public PointAPI ptReserved;
- public PointAPI ptMaxSize;
- public PointAPI ptMaxPosition;
- public PointAPI ptMinTrackSize;
- public PointAPI ptMaxTrackSize;
- }
- public Form2()
- {
- InitializeComponent();
- this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
- }
- protected override void WndProc(ref System.Windows.Forms.Message m)
- {
- base.WndProc(ref m);
- if (m.Msg == WM_GETMINMAXINFO)
- {
- MinMaxInfo mmi = (MinMaxInfo)m.GetLParam(typeof(MinMaxInfo));
- mmi.ptMinTrackSize.x = this.MinimumSize.Width;
- mmi.ptMinTrackSize.y = this.MinimumSize.Height;
- if (this.MaximumSize.Width != 0 || this.MaximumSize.Height != 0)
- {
- mmi.ptMaxTrackSize.x = this.MaximumSize.Width;
- mmi.ptMaxTrackSize.y = this.MaximumSize.Height;
- }
- mmi.ptMaxPosition.x = 1;
- mmi.ptMaxPosition.y = 1;
- System.Runtime.InteropServices.Marshal.StructureToPtr(mmi, m.LParam, true);
- }
- }
- }
Winform窗体最大化的时候,如何指定窗体的位置、大小的更多相关文章
- winform 窗体最大化 分类: WinForm 2014-07-17 15:57 215人阅读 评论(0) 收藏
1:窗体首次加载时最大化 (1):主窗体 this.WindowState = FormWindowState.Maximized; //窗体显示中间部分,不显示窗体名称和最小化.最大化.关闭按钮 ...
- 解决WinForm(C#)中MDI子窗体最大化的问题
“用MDI方式打开一个子窗口体后,总是不能最大化显示,明明子窗口体的WindowState设置为Maximized?”,相信有很多人会遇到这的样问题,请按下面的方法设置即可使MDI子窗体最大化: 1. ...
- C# WinForm 关于窗体最大化时的是否全屏效果与是否遮盖任务栏
0.新建窗体 及添加按钮 1. 执行如下按钮事件 private void btnFormMax_Click(object sender, EventArgs e) { if (this ...
- 解决WinForm(C#)中MDI子窗体最大化跑偏的问题
“用MDI方式打开一个子窗口体后,总是不能最大化显示,明明子窗口体的WindowState设置为Maximized?”,相信有很多人会遇到这的样问题,请按下面的方法设置即可使MDI子窗体最大化: 1. ...
- 【Winform-最大化窗体】Winform设置窗体最大化,填满整个屏幕
设置窗体最大化,填满整个屏幕//this.MaximizedBounds = Screen.PrimaryScreen.WorkingArea;//this.MaximumSize = Screen. ...
- Delphi 中的全局快捷键+给指定窗体发送按键
[背景] 公司做视频影像采集,平时采集图像的时候都需要打开采集窗口,然后需要开着采集窗口来进行图像采集.同事问我能不能做一个全局快捷键,哪怕我没有操作也可以采集图像.说干就干,一直想做全局快捷键了,网 ...
- Delphi窗体最大化按钮不可用情况下的最大化
最大化按钮不可用,而且窗体最大化,我以前一直这样设置:在Object Inspector下把BorderIcons属性下的biMaximize属性设置为False,然后把WindowState属性设置 ...
- C#设置窗体最大化且不遮挡任务栏的方法
C#设置窗体最大化示例: 也可将方法内的内容放到主窗体首次加载load方法中. /// <summary> /// 设置窗体最大化(不遮挡任务栏)但此方法在宽屏中不能显示全屏/// < ...
- access窗体最大化到软件大小
Private Sub Form_Load()DoCmd.ShowToolbar "Ribbon", acToolbarNo '窗体最大化,占满软件最 End Sub
随机推荐
- 扩展 jquery miniui 组件实现自动查询数据
主题 之前写过一篇文章分享了公司basecode查找数据后台是怎么实现的(http://www.cnblogs.com/abcwt112/p/6085335.html).今天想分享一下公司前台是怎么扩 ...
- js中获取窗口高度的方法
取窗口滚动条滚动高度 function getScrollTop() { var scrollTop=0; if(document.documentElement&&document. ...
- PHP陷阱,一些注意事项
判断的一些注意事项 count(false) > 0 // true count(0) > 0 // true "随便一个字符串" == 0 // true " ...
- CSS常用技术总结!~~
//放大屏幕,背景图不变 background: url(x.png) no-repeat 0 0; background-image: -webkit-image-set(url(logo_db.p ...
- vtk多线程简单测试
vtkMultithreader is a class that provides support for multithreaded execution using sproc() on an SG ...
- mysql基于“时间”的盲注
无需页面报错,根据页面响应时间做判断! mysql基于时间的盲注 =================================================================== ...
- Eclipse常用快捷键汇总
经常使用eclipse进行开发,不掌握快捷键步行啊,在此整理了一些快捷键,大家要灵活运用啊... (注:红色标出来的是经常使用到的快捷键,磨刀不误砍柴工啊...) Ctrl+1 快速修复(最经典的快捷 ...
- marquee上下左右循环无缝滚动代码
一.横向滚动<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN "><HTML>< ...
- Javascript模块化编程(一):模块的写法
Javascript模块化编程(一):模块的写法 作者: 阮一峰 原文链接:http://www.ruanyifeng.com/blog/2012/10/javascript_module.html ...
- 将Vuforia程序发布到Windows10系统的基本流程
最新博客地址已转到: http://blog.csdn.net/zzlyw?viewmode=contents ------------------------------------------ ...