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

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章