首页 > 编程语言 >C# Winform

C# Winform

时间:2023-11-19 14:34:07浏览次数:41  
标签:C# System Width 窗体 FormStartPosition Winform StartPosition Size

1. 窗体起始位置Position 设置

(1) 窗体起始位置为顶部中间,WinForm居中显示:

int x = (System.Windows.Forms.SystemInformation.WorkingArea.Width - this.Size.Width) / 2;
int y = (System.Windows.Forms.SystemInformation.WorkingArea.Height - this.Size.Height) / 2;
this.StartPosition = FormStartPosition.Manual; //窗体的位置由Location属性决定
this.Location = (Point)new Size(x, y);         //窗体的起始位置为(x,y)

(2) 其他属性说明

System.Windows.Forms.SystemInformation.WorkingArea.Width //屏幕宽度
System.Windows.Forms.SystemInformation.WorkingArea.Height //屏幕高度(去系统任务栏,当显示有任务栏的时候)
this.Size.Width   //自己窗体的宽度,
this.Size.Width   //自己窗体的高度
this.ClientRectangle.Width  //工作区域宽度
this.ClientRectangle.Height  //工作区域高度设置窗口初始位置
this.StartPosition = FormStartPosition.Manual; //窗体的位置由Location属性决定
this.StartPosition = FormStartPosition.CenterParent; //窗体在其父窗体中居中
this.StartPosition = FormStartPosition.CenterScreen; //窗体在当前显示窗口中居中,尺寸在窗体大小中指定
this.StartPosition = FormStartPosition.WindowsDefaultBounds; //窗体定位在windows默认位置,边界也由windows默认决定
this.StartPosition = FormStartPosition.WindowsDefaultLocation; //窗体定位在windows默认位置,尺寸在窗体大小中指定

(3) 指定窗体Locaiton来,设定窗体位置

this.StartPosition = FormStartPosition.Manual; //窗体的位置由Location属性决定
this.Location = (Point)new Size(0, 0); //窗体的起始位置为0,0 

(4) 创建窗体时, 设置宽度和高度

this.ClientSize = new System.Drawing.Size(x1,y1); //X1 为宽度,Y1为高度

(5) 获取屏幕大小(using System.Drawing)

Rectangle rect = Screen.GetWorkingArea(this);
Point p = new Point(rect.Width,rect.Height);
this.Location = p;

 2. 窗体事件:

Load: 初始化窗体、加载窗体资源(窗体上的各种控件),在窗体句柄创建之后、显示之前,为显示做准备。只触发一次。
Shown:在窗体加载后显示窗体,设置窗体属性Visible=true或form.show()才会触发。触发一次或者不触发
Activated:每次窗体获得焦点均会触发(从别的窗体或对话框切回来时)。可触发多次

 

标签:C#,System,Width,窗体,FormStartPosition,Winform,StartPosition,Size
From: https://www.cnblogs.com/kezhang/p/17842011.html

相关文章

  • CF601B Lipshitz Sequence 题解
    给你一个序列\(v_{1\dotsn}\),定义\(f(v)\)为\(v\)中斜率最大值(\(\lvertv\rvert=1\)则\(f(v)=0\)),有\(q\)组询问,每次给定\(1\lel\ltr\len\),求\(a_{l\dotsr}\)的每个子区间的\(f\)之和。一个关键的性质是,最大的斜率只在相邻数间取到。有了这个性质,这题......
  • 无涯教程-RSpec - 过滤器
    在阅读本节之前,您可能需要阅读有关RSpec元数据(Metadata)的部分,因为事实证明,RSpec筛选(Filtering)基于RSpec元数据。假设您有一个spec文件,它包含两种类型的测试:正确测试和错误测试。让无涯教程这样定义它们-RSpec.describe"AnExampleGroupwithpositiveandnegativeExam......
  • oracle查看表空间的方法
    一、Oracle查询表空间占用情况SELECTa.tablespace_name"表空间名",total"表空间大小",free"表空间剩余大小",(total-free)"表占用空间大小",ROUND((total-free)/total*100,2)||'%'"已使用空间百分比"......
  • 9、Redis复制(replica)【面试重点】
    一、是什么二、能干嘛三、怎么玩1、权限细节2、基本操作命令四、案例演示1、架构说明2、小口诀3、修改配置文件细节操作4、常用3招4.1一主二仆4.1.1方案1:配置文件固定写死(1)从机配置replicaof及masterauth(2)先启动master后启动两......
  • pycharm配置conda
     会让你选择虚拟环境  右下角就有结果了 ......
  • c语言学习-while 循环
    intmain(){ inta=0; printf("joinus"); printf("codenow"); while(a<20000){ printf("写了%d\n",a); a++; } printf("已经写好了%d\n",a); printf("有好offer了"); return0;}......
  • c语言学习 - 逗号表达式及操作符
    条件操作符(三目操作数)exp1?exp2:exp3;若exp1的结果为真,则exp2是整个表达式的结果若exp1为假,则执行exp3作为整个表达式的结果赋值z++为先赋值再自增。++z为先自增再赋值。......
  • go并发 - channel
    概述并发编程是利用多核心能力,提升程序性能,而多线程之间需要相互协作、共享资源、线程安全等。任何并发模型都要解决线程间通讯问题,毫不夸张的说线程通讯是并发编程的主要问题。go使用著名的CSP(CommunicatingSequentialProcess,通讯顺序进程)并发模型,从设计之初Go语言就注重如......
  • CADquery 螺纹的绘制
     fromcadqueryimport*importcadqueryascqfrommathimport*defhelix(r0,r_eps,p,h,d=0,frac=1e-1):deffunc(t):iffrac<t<1-frac:z=h*t+dr=r0+r_epselift<=frac:......
  • mac删除无用的输入与输出设备
    有时候看看着新闻视频,上来就没声音,经过排查发现,mac的输出设备为recordit聚集设备,我记得把这个软件删除了,怎么还有这个东西。可以通过下面的方法,把已确定不要的设备驱动删除掉。删除输入设备cd/Library/Audio/Plug-Ins/HAL在这个目录下,有目前下载过的驱动,可以使用rm-rf......