在启动一个程序时,我们希望窗口显示的位置处于屏幕的正中心,可以如下设置:
 MainForm mainForm = new MainForm();
 mainForm.StartPosition = FormStartPosition.CenterScreen;
 mainForm.Show();
如果在允许操作主窗口之前,必须先登录,则弹出登录窗口。此时主窗口出现在登录窗口后面,无法进行操作。
 MainForm mainForm = new MainForm();
 LoginForm dlg=new LoginForm();
 dlg.ShowDialog();
这里ShowDialog方法表示你必须先操作完dlg窗口,才能操作后面的主窗体。
如果要登录窗口显示在主窗口的中心,则在显示之前设置如下
 dlg.StartPosition = FormStartPosition.CenterParent;
 dlg.ShowDialog();
能够这样做的前提是主窗体必须先定义和显示。否则登录窗体可能无法找到父窗体。
除此之外,也可以手动设置窗口显示的位置,即窗口坐标。
首先必须把窗体的显示位置设置为手动。
dlg.StartPosition=FormStartPosition.Manual;
随后获取屏幕的分辨率,也就是显示器屏幕的大小。
 int xWidth = SystemInformation.PrimaryMonitorSize.Width;//获取显示器屏幕宽度
 int yHeight = SystemInformation.PrimaryMonitorSize.Height;//高度
然后定义窗口位置,以主窗体为例
 mainForm.Location = new Point(xWidth/2, yHeight/2);//这里需要再减去窗体本身的宽度和高度的一半
 mainForm.Show();
这样三步之后,一个准确定位在屏幕位置上的窗体就显示出来了。
用Point类时,必须先把它包含进来,在程序最前面写上:
 using System.Drawing;
通过上面的一些简单介绍,您应该明白在C#中怎样设置窗体位置了吧

出处: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, , Win32.AW_BLEND);
 }
 /**//*淡出窗体*/
 private void Form_FormClosing(object sender, FormClosingEventArgs e)
 {
  Win32.AnimateWindow(this.Handle, , Win32.AW_SLIDE | Win32.AW_HIDE | Win32.AW_BLEND);
 }
,窗体居中
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 / ) - (form.Width / ),
(Screen.GetBounds(form).Height / ) - (form.Height / ),
form.Width, form.Height, BoundsSpecified.Location);
}

这里是一个静态方法,参数为你需要设置居中的窗口对象。你可以在该窗口加载的时候加载这个静态方法实现你要的效果!

出处:http://blog.csdn.net/lwmjm/article/details/8085752

C# winform窗口打开特效及窗口位置居中的更多相关文章

  1. Winform中设置Dialog的显示位置居中

    场景 点击按钮使窗体以Dialog的方式显示,即弹窗. //声明窗体对象 ChartOption chartOption = new ChartOption(); //显示Dialog chartOp ...

  2. winform只能打开一个子窗口

    源地址:https://zhidao.baidu.com/question/1511266887807047660.html 指定弹出的子窗口为模态窗口就可以了,这样在子窗口没有关闭前,是不能操作父窗 ...

  3. java在线聊天项目0.4版本 制作服务端接收连接,客户端连接功能 新增客户端窗口打开时光标指向下边文本域功能,使用WindowListener监听WindowAdapter

    建一个服务端类ChatServer,用于设置端口接收连接 package com.swift; import java.io.IOException; import java.net.ServerSo ...

  4. winform窗口打开后文本框的默认焦点设置

    原文:http://blog.csdn.net/kongwei521/article/details/6871411 winform窗口打开后文本框的默认焦点设置,进入窗口后默认聚焦到某个文本框,两种 ...

  5. C#如何关闭一个窗口的同时打开另一个窗口

    在.net的WinForm程序中,如果是直接起动的Form作为主窗口,那么这个主窗口是不能关闭的,因为它维护了一个Windows消息循环,它一旦关闭了就等于声明整个应用程序结束,所以新打开的窗口也就被 ...

  6. Windows10文件目录下添加 Shift+右键打开管理员Powershell窗口

    背景(可略过) 目前在调试 Python 程序,遇到了一个问题:当程序中包含多线程时,使用 IDLE 运行是不会执行多线程的语句的,在网上一顿搜罗了解到这种情况可以换成在命令行下执行.好像用 PyCh ...

  7. CefSharp 在同一窗口打开链接的方法

    摘要 在winform中使用cefsharp的时候,我们在浏览网页的时候,想在同一个窗口打开链接,而不是创建新的窗口.可以通过下面的方法实现. 解决方案 CefSharp 中控制弹窗的接口是 ILif ...

  8. JavaScript窗口打开与关闭及如何使用opener使子窗口对父窗口进行操作

    一.打开与关闭窗口 1.打开窗口:可以使用window对象中的Open()方法. newWindow = window.open(url,windowname,location); 参数说明: url ...

  9. C#关闭一个窗口的同时打开另一个窗口

    在.net的WinForm程序中,如果是直接起动的Form作为主窗口,那么这个主窗口是不能关闭的,因为它维护了一个Windows消息循环,它一旦关闭了就等于声明整个应用程序结束,所以新打开的窗口也就被 ...

随机推荐

  1. Qt移植对USB鼠标键盘、触摸屏的支持

    .USB键盘 经过一番搜索,发现对Qt键盘的支持主要关系到两个方面: 1. 键盘类型确定: 4.7以前的Qt版本,如果是PS2圆孔键盘,Qt编译时需加上选项:-qt-kbd-vr41xx(未测试):如 ...

  2. Squid 访问控制配置

    Squid 访问控制配置 主配置文件内加入限制参数 vim /etc/squid/squid.conf # 访问控制 acl http proto HTTP # 限制访问 good_domain添加两 ...

  3. OC_NSString、

    8月17日NSString 一.字符串的创建 //1.创建常量字符串 NSString *str1 = @"hello world"; NSLog(@"%@", ...

  4. Linux文件系统及文件储存方式【转】

    本文转载自:https://blog.csdn.net/qyp199312/article/details/54927843 前言 Linux文件系统构成 文件式的文件结构 Linux的一个具体文件 ...

  5. poj 3468 线段树模板题

    #include<iostream> #include<algorithm> #include<stdio.h> using namespace std; #def ...

  6. centos7下安装jdk7

     CentOS7.1 JDK安装 1.卸载自带OPENJDK    用 java -version 命令查看当前jdk版本信息   #java -version    用rpm -qa | grep ...

  7. Variation calling and annotation

    Resequencing 302 wild and cultivated accessions identifies genes related to domestication and improv ...

  8. js限制输入内容

    1,限制输入正整数 onkeyup="value=value.replace(/[^\d]/g,'')" 2,限制输入为数字,包括小数(有瑕疵) onkeyup="val ...

  9. MYSQL进阶学习笔记一:MySQL编码设定,会话变量和全局变量!(视频序号:进阶_1-3)

    知识点一:MySQL编码设定(1-2) 服务器编码设定: 查看MySQL服务器端的编码格式: SHOW VARIABLES LIKE ‘char%’; 设定编码格式: SET NAMES ‘utf8’ ...

  10. JavaWeb -- Servlet+JSP+JavaBean(MVC)模式

    Servlet+JSP+JavaBean(MVC)模式适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp负责数据显示,javabean负责封装数据. Servlet+JSP ...