C# winform窗口打开特效及窗口位置居中
出处:http://blog.csdn.net/qshpeng/article/details/1672359
=======================================================================================
再看另外一个设置窗口打开的特效已经居中的方法,大家可以参考使用。
using System.Runtime.InteropServices; public class Win32 { public const Int32 AW_HOR_POSITIVE = 0x00000001; // 从左到右打开窗口 public const Int32 AW_HOR_NEGATIVE = 0x00000002; // 从右到左打开窗口 public const Int32 AW_VER_POSITIVE = 0x00000004; // 从上到下打开窗口 public const Int32 AW_VER_NEGATIVE = 0x00000008; // 从下到上打开窗口 public const Int32 AW_CENTER = 0x00000010; //若使用了AW_HIDE标志,则使窗口向内重叠;若未使用AW_HIDE标志,则使窗口向外扩展。 public const Int32 AW_HIDE = 0x00010000; //隐藏窗口,缺省则显示窗口。 public const Int32 AW_ACTIVATE = 0x00020000; //激活窗口。在使用了AW_HIDE标志后不要使用这个标志。 public const Int32 AW_SLIDE = 0x00040000; //使用滑动类型。缺省则为滚动动画类型。当使用AW_CENTER标志时,这个标志就被忽略。 public const Int32 AW_BLEND = 0x00080000; //使用淡出效果。只有当hWnd为顶层窗口的时候才可以使用此标志。 [DllImport("user32.dll", CharSet = CharSet.Auto)] public static extern bool AnimateWindow( IntPtr hwnd, // handle to window int dwTime, // duration of animation int dwFlags // animation type ); } /**//*淡入窗体*/ private void Form_Load(object sender, EventArgs e) { Win32.AnimateWindow(this.Handle, 2000, Win32.AW_BLEND); } /**//*淡出窗体*/ private void Form_FormClosing(object sender, FormClosingEventArgs e) { Win32.AnimateWindow(this.Handle, 2000, Win32.AW_SLIDE | Win32.AW_HIDE | Win32.AW_BLEND); } 2,窗体居中 Code /**//// <summary> /// 页面居中 /// </summary> public static void SetMid(Form form) { // Center the Form on the user's screen everytime it requires a Layout. form.SetBounds((Screen.GetBounds(form).Width / 2) - (form.Width / 2), (Screen.GetBounds(form).Height / 2) - (form.Height / 2), form.Width, form.Height, BoundsSpecified.Location); }
这里是一个静态方法,参数为你需要设置居中的窗口对象。你可以在该窗口加载的时候加载这个静态方法实现你要的效果!
出处:http://blog.csdn.net/lwmjm/article/details/8085752
=======================================================================================
【WinForm】Form设置窗体居中显示
Form设置窗体居中显示
设置第一次出现的位置StartPosition为CenterScreen
当运行时
当新实例化的窗体或被最小化的窗体,设置居中显示
方法
/// <summary>
/// 扩展方法
/// </summary>
public static class Extensions
{
/// <summary>
/// Form设置窗体居中显示
/// </summary>
public static void CenterScreen(this Form frm)
{
//激活窗体
frm.Activate();
//如果窗体是最小化状态,则设置为正常状态
if (frm.WindowState == FormWindowState.Minimized) frm.WindowState = FormWindowState.Normal;
//设置窗体位置居中
frm.Location = new Point((SystemInformation.PrimaryMonitorSize.Width - frm.Width) / 2,
(SystemInformation.PrimaryMonitorSize.Height - frm.Height) / 2);
}
}
调用
frm.CenterScreen();
=======================================================================================
Winform通用窗体屏幕居中或父窗体居中
一、实现效果
①窗体居于屏幕中间
②子窗体居于父窗体中间
二、核心代码
/*** * Title:"三维可视化" 项目 * 主题:【视图层】窗体基础操作 * Description: * 功能: * 1、实现窗体基于屏幕居中 * 2、实现窗体居于父窗体中间 * Date:2020 * Version:1.0版本 * Author:Coffee * Modify Recoder: */ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; namespace View { class FormBaseOPC { /// <summary> /// 1-窗体屏幕居中 /// </summary> /// <param name="form">需要居中的窗体</param> public static void SetScreenMiddle2(Form form) { if (form!=null) { //获取屏幕设置居中效果 form.SetBounds((Screen.GetBounds(form).Width / 2) - (form.Width / 2), (Screen.GetBounds(form).Height / 2) - (form.Height / 2), form.Width, form.Height, BoundsSpecified.Location); } } /// <summary> /// 1-窗体屏幕居中(系统自带) /// </summary> /// <param name="form">需要居中的窗体</param> public static void SetScreenMiddle(Form form) { if (form!=null) { form.StartPosition = FormStartPosition.CenterScreen; } } /// <summary> /// 2-设置相对于窗体居中且打开 /// </summary> /// <param name="form">需要居中的窗体</param> public static void SetFormMiddle(Form form) { if (form!=null) { //设置窗体相对于父窗体居中 form.StartPosition = FormStartPosition.CenterParent; //显示窗体 form.ShowDialog(); //设置焦点为当前窗体 form.Focus(); } } }//Class_end }
三、使用方法
①首先使用命名空间
using View;
②使用示例:实现窗体居于屏幕中间
public partial class Form1 : Form { public Form1() { InitializeComponent(); //设置窗体屏幕居中 FormBaseOPC.SetScreenMiddle(this); } }
③使用示例:实现子窗体居于父窗体中间
//设置相对于父窗体居中且打开(这个方法用在父窗体中) FormBaseOPC.SetFormMiddle(子窗体的名称); //比如我要在当前父窗体的按钮下面实现点击按钮打开子窗体【子窗体名为:form_IPSettings】(且该子窗体居于该父窗体的中间)则在该按钮方法内容添加如下方法即可 FormBaseOPC.SetFormMiddle(form_IPSettings);
出处:https://www.freesion.com/article/2105696636/
=======================================================================================
C# WinForm 窗口居中
/// <summary> /// 屏幕大小 /// </summary> int ScreenH, ScreenW; public Form1() { InitializeComponent(); //缓存 屏幕分辨率 ScreenH = System.Windows.Forms.SystemInformation.WorkingArea.Height; ScreenW = System.Windows.Forms.SystemInformation.WorkingArea.Width; //软件一启动,窗口就居中【后续,如果有改变窗口,不会再次居中】 this.StartPosition = FormStartPosition.CenterScreen; } ///手动窗体居中 private void button1_Click(object sender, EventArgs e) { //窗体居中 int formheight = this.Size.Height; int formwidth = this.Size.Width; int newformx = ScreenW / 2 - formwidth / 2; int newformy = ScreenH / 2 - formheight / 2; this.SetDesktopLocation(newformx, newformy); }
出处:https://blog.csdn.net/DxgTeam/article/details/112345013
=======================================================================================
Winform窗口的淡入淡出特效及窗口位置居中功能
一、设置窗体淡入淡出效果
1.1、窗体淡入淡出效果核心脚本
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
/***
* Title:"三维可视化" 项目 * 主题:【视图层】窗体淡入弹出 * Description: * 功能:实现窗体的淡入淡出效果 * Date:2020 * Version:1.0版本 * Author:Coffee * Modify Recoder: */ using System; using System.Runtime.InteropServices; namespace View { //窗体的淡入淡出效果 class FormFadeInorout { public const Int32 AW_HOR_POSITIVE = 0x00000001; // 从左到右打开窗口 public const Int32 AW_HOR_NEGATIVE = 0x00000002; // 从右到左打开窗口 public const Int32 AW_VER_POSITIVE = 0x00000004; // 从上到下打开窗口 public const Int32 AW_VER_NEGATIVE = 0x00000008; // 从下到上打开窗口 public const Int32 AW_CENTER = 0x00000010; //若使用了AW_HIDE标志,则使窗口向内重叠;若未使用AW_HIDE标志,则使窗口向外扩展。 public const Int32 AW_HIDE = 0x00010000; //隐藏窗口,缺省则显示窗口。 public const Int32 AW_ACTIVATE = 0x00020000; //激活窗口。在使用了AW_HIDE标志后不要使用这个标志。 public const Int32 AW_SLIDE = 0x00040000; //使用滑动类型。缺省则为滚动动画类型。当使用AW_CENTER标志时,这个标志就被忽略。 public const Int32 AW_BLEND = 0x00080000; //使用淡出效果。只有当hWnd为顶层窗口的时候才可以使用此标志。 [DllImport("user32.dll", CharSet = CharSet.Auto)] public static extern bool AnimateWindow ( IntPtr hwnd, // 窗口句柄 int dwTime, // 淡入淡出持续时间(单位:毫秒) int dwFlags // 淡入淡出特效类型 ); }//Class_end } |
1.2、窗体淡入淡出效果使用方法
注意:窗体淡入淡出的持续时间可以自行修改
①在窗体加载时使用窗体淡入效果:
1
2 3 4 5 |
private void Form1_Load(object sender, EventArgs e)
{ //淡入窗体 FormFadeInorout.AnimateWindow(this.Handle, 500, FormFadeInorout.AW_BLEND); } |
②在关闭窗体是使用窗体淡出效果
1
2 3 4 5 |
private void Form_FormClosing(object sender, FormClosingEventArgs e)
{ //淡出窗体 FormFadeInorout.AnimateWindow(this.Handle, 360, FormFadeInorout.AW_SLIDE | FormFadeInorout.AW_HIDE | FormFadeInorout.AW_BLEND); } |
二、Winform窗体的居中功能
2.1、Winform窗体根据显示的屏幕居中
①使用系统自带的居中方法:
1
|
需要居中的窗体名称.StartPosition = FormStartPosition.CenterScreen;
|
②获取屏幕长和宽然后除以2计算设置
1
2 |
int xWidth = SystemInformation.PrimaryMonitorSize.Width;//获取显示器屏幕宽度
int yHeight = SystemInformation.PrimaryMonitorSize.Height;//高度 |
2.2、Winform窗体居于父窗体的中间
1
2 3 4 |
//设置窗体相对于父窗体居中
需要居中的窗体名称.StartPosition = FormStartPosition.CenterParent; //显示窗体 需要居中的窗体名称.ShowDialog(); |
2.3、实现窗体居中的核心脚本
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
/***
* Title:"三维可视化" 项目 * 主题:【视图层】窗体基础操作 * Description: * 功能: * 1、实现窗体基于屏幕居中 * 2、实现窗体居于父窗体中间 * Date:2020 * Version:1.0版本 * Author:Coffee * Modify Recoder: */ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; namespace View { class FormBaseOPC { /// <summary> /// 1-窗体屏幕居中 /// </summary> /// <param name="form">需要居中的窗体</param> public static void SetScreenMiddle2(Form form) { if (form!=null) { //获取屏幕设置居中效果 form.SetBounds((Screen.GetBounds(form).Width / 2) - (form.Width / 2), (Screen.GetBounds(form).Height / 2) - (form.Height / 2), form.Width, form.Height, BoundsSpecified.Location); } } /// <summary> /// 1-窗体屏幕居中(系统自带) /// </summary> /// <param name="form">需要居中的窗体</param> public static void SetScreenMiddle(Form form) { if (form!=null) { form.StartPosition = FormStartPosition.CenterScreen; } } /// <summary> /// 2-设置相对于窗体居中且打开 /// </summary> /// <param name="form">需要居中的窗体</param> public static void SetFormMiddle(Form form) { if (form!=null) { //设置窗体相对于父窗体居中 form.StartPosition = FormStartPosition.CenterParent; //显示窗体 form.ShowDialog(); //设置焦点为当前窗体 form.Focus(); } } }//Class_end } |
2.4、使用方法
①在窗体初始化时:调用窗体基于屏幕居中的方法
1
2 3 4 5 6 7 8 9 10 11 12 13 |
public Form1()
{ InitializeComponent(); //设置窗体屏幕居中 FormBaseOPC.SetScreenMiddle(this); } public Form1() { InitializeComponent(); //设置窗体屏幕居中 FormBaseOPC.SetScreenMiddle2(this); } |
②在按钮触发需要打开子窗体时候:调用实现窗体居于父窗体中间方法
1
2 3 4 5 6 7 8 9 10 |
//打开设置窗体按钮
private void Btn_Settings_Click(object sender, EventArgs e) { if (form_IPSettings==null || form_IPSettings.IsDisposed) { form_IPSettings = new Form_IPSettings(); } //设置相对于窗体居中且打开 FormBaseOPC.SetFormMiddle(form_IPSettings); } |
注意:淡入淡出特效参考:C# winform自动居中,及特效
出处:https://www.codenong.com/cs106043774/
关注我】。(●'◡'●)
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【因为,我的写作热情也离不开您的肯定与支持,感谢您的阅读,我是【Jack_孟】!
本文来自博客园,作者:jack_Meng,转载请注明原文链接:https://www.cnblogs.com/mq0036/p/6421946.html
【免责声明】本文来自源于网络,如涉及版权或侵权问题,请及时联系我们,我们将第一时间删除或更改!
posted on 2017-02-20 22:41 jack_Meng 阅读(68728) 评论(0) 编辑 收藏 举报