您的位置:首页 > 其它

关于winForm窗体最大化时全屏及遮盖任务栏问题

2012-09-01 11:02 218 查看
. 窗体最大化时 非全屏 不会遮盖任务栏

private void btnFormMax_Click(object sender, EventArgs e)

{

if (this.WindowState == FormWindowState.Maximized)

{

this.WindowState = FormWindowState.Normal;

}

else

{

this.WindowState = FormWindowState.Maximized;

}

}

此时this.FormBorderStyle. 默认为 Sizable

2. 窗体最大化时 会全屏 及遮盖任务栏

private void btnFormMax_Click(object sender, EventArgs e)

{

if (this.WindowState == FormWindowState.Maximized)

{

this.WindowState = FormWindowState.Normal;

}

else

{

this.FormBorderStyle. = FormBorderStyle.None;

this.WindowState = FormWindowState.Maximized;

}

}

此时this.FormBorderStyle. 为 None 不会显示窗体标题栏等相关



3. 窗体最大化时 非全屏 不会遮盖任务栏

private void btnFormMax_Click(object sender, EventArgs e)

{

if (this.WindowState == FormWindowState.Maximized)

{

this.WindowState = FormWindowState.Normal;

}

else

{

this.FormBorderStyle. = FormBorderStyle.None;

this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);

this.WindowState = FormWindowState.Maximized;

}

}

此时this.FormBorderStyle. 为 None 不会显示窗体标题栏等相关





窗体最大化的时候,如何指定窗体的位置、大小(C#)

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace WindowsApplication1

{

public partial class FormRegion : 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 FormRegion()

{

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);

}

}

}

}

MessageBox.Show("当前窗体标题栏高度"+(this.Height - this.ClientRectangle.Height).ToString());//获得当前窗体标题栏高度

ClientRectangle//获取表示控件的工作区的矩形

MessageBox.Show(SystemInformation.PrimaryMonitorSize.ToString()); //获取主显示器屏幕的尺寸(像素)

//获取主显示器当前当前视频模式的尺寸(以象素为单位)

MessageBox.Show("菜单栏高度"+SystemInformation.MenuHeight.ToString()); //获取标准菜单栏的高度

MessageBox.Show("标题栏高度"+SystemInformation.CaptionHeight.ToString()); //获取标准标题栏的高度

MenuHeight//获取一个菜单行的高度(以象素为单位)

CaptionHeight//获取窗口的标准标题栏区域的高度(以象素为单位)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: