首页 / C# / C#:控制WinForm界面的显示
C#:控制WinForm界面的显示
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#:控制WinForm界面的显示,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6327字,纯文字阅读大概需要10分钟。
内容图文
控制WinForm界面在屏幕的四个角落显示,具体代码中有说明:
using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Tooltip { /// <summary> /// 弹出自方向 右上、右下、左上、左下 /// </summary> internal enum PopUp { LeftUp, // 左上 LeftDown, //左下 RightUp, //右上 RightDown //右下 } ///<summary>/// 显示窗体 ///</summary>publicclass ShowForm { #region 字段 属性 privateint screenWidth; //除任务栏外的屏幕的宽privateint screenHeight; //除任务栏外的屏幕的高private Timer timer = new Timer(); //计时器private Form _form; ///<summary>/// 显示的窗体 ///</summary>public Form TheForm { set { this._form = value; SetLocation(); } get { returnthis._form; } } private System.Drawing.Point locationPoint; ///<summary>/// 窗体显示位置 ///</summary>public System.Drawing.Point LocationPoint { set { this.locationPoint = value; LimitShowArea(); } get { returnthis.locationPoint; } } privateint time; ///<summary>/// 设置弹出窗体过程的整个时间 ///</summary>publicint Time { set { this.time = value; } get { returnthis.time; } } #endregion#region 构造函数 ///<summary>/// 构造函数 ///</summary>public ShowForm() { //this._form = form; screenWidth = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width; screenHeight = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height; this.time = 3; //this.timer.Interval = 100;this.timer.Tick += new EventHandler(timer_Tick); this.timer.Enabled = false; } #endregion#region 动态化窗体 开始 结束 #region 窗体动态化参数 privateint x_distance; //运动时在X轴上的距离privateint y_distance; //运动时在Y轴上的距离privateint tickCount; //总运动次数privateint x_step; //运动时在Y轴上的步长privateint y_step; //运动时在Y轴上的步长privateint num = 0; //运动到第几次 private Point reachPoint = new Point(); //运动到的具体位置#endregion///<summary>/// 设置窗体动态化参数 ///</summary>privatevoid SetFormDynamicParms() { x_distance = this.locationPoint.X - this.screenWidth; y_distance = this.locationPoint.Y - this.screenHeight; tickCount = this.time * 1000 / this.timer.Interval; PopUp popUpDirection = this.JudgeDirection(); switch (popUpDirection) { case PopUp.LeftUp: x_distance = this.locationPoint.X + this._form.Width; //x_distance = this.locationPoint.X; y_distance = this.locationPoint.Y + this._form.Height; //y_distance = this.locationPoint.Y break; case PopUp.LeftDown: x_distance = this.locationPoint.X + this._form.Width; //x_distance = this.locationPoint.X; y_distance = this.locationPoint.Y - this.screenHeight; break; case PopUp.RightUp: x_distance = this.locationPoint.X - this.screenWidth; y_distance = this.locationPoint.Y + this._form.Height; //y_distance = this.locationPoint.Y;break; default: break; } x_step = x_distance / tickCount; y_step = y_distance / tickCount; } ///<summary>/// 计时器间隔执行函数 ///</summary>///<param name="sender"></param>///<param name="e"></param>privatevoid timer_Tick(object sender, EventArgs e) { if (this.num == 0) { SetFormDynamicParms(); num++; } else { this.reachPoint.X = this.locationPoint.X - x_distance + x_step * num; this.reachPoint.Y = this.locationPoint.Y - y_distance + y_step * num; if (this.num < this.tickCount) { this._form.Location = this.reachPoint; this._form.Opacity = this.num * 100 / this.tickCount; this.num++; } else { this._form.Location = this.locationPoint; this._form.Opacity = 100; this.num = 0; this.timer.Stop(); } } } ///<summary>/// 开始显示动态窗体 ///</summary>publicvoid Start() { this.timer.Enabled = true; this.timer.Start(); this._form.Opacity = 0; this._form.Show(); } ///<summary>/// 关闭显示的窗体 ///</summary>publicvoid Close() { this.timer.Stop(); this.timer.Enabled = false; this._form.Close(); } #endregion#region 默认显示位置 privatevoid SetLocation() { Point lct = new Point(); lct.X = screenWidth - this.TheForm.Width; lct.Y = screenHeight - this.TheForm.Height; this.LocationPoint = lct; } #endregion#region 限制弹框的显示区域 privatevoid LimitShowArea() { if (this.locationPoint.X < 0 ) { this.locationPoint.X = 0; } if (this.locationPoint.Y < 0) { this.locationPoint.Y = 0; } int maxX = this.screenWidth - this._form.Width; //Form 不溢出 X轴最大值if (this.locationPoint.X > maxX) { this.locationPoint.X = maxX; } int maxY = this.screenHeight - this._form.Height; //Form 不溢出 Y轴最大值if (this.locationPoint.Y > maxY) { this.locationPoint.Y = maxY; } } #endregion#region 窗体显示 右上、右下、左上、左下 ///<summary>/// 窗体中心点 ///</summary>///<returns></returns>private Point FormCentre() { Point frmCentre = new Point(); frmCentre.X = this.locationPoint.X + this._form.Width / 2; frmCentre.Y = this.locationPoint.Y + this._form.Height / 2; return frmCentre; } ///<summary>/// 屏幕中心点 ///</summary>///<returns></returns>private Point ScreenCentre() { Point screenCentre = new Point(); screenCentre.X = this.screenWidth / 2; screenCentre.Y = this.screenHeight / 2; return screenCentre; } ///<summary>/// 判断窗体显示自的方向 ///</summary>///<returns></returns>private PopUp JudgeDirection() { PopUp popup = PopUp.RightDown; Point frmCentre = FormCentre(); Point screenCentre = ScreenCentre(); if (frmCentre.X < screenCentre.X) { if (frmCentre.Y < screenCentre.Y) { popup = PopUp.LeftUp; } else { popup = PopUp.LeftDown; } } else { if (frmCentre.Y < screenCentre.Y) { popup = PopUp.RightUp; } else { popup = PopUp.RightDown; } } return popup; } #endregion } }
参考:屏幕、任务栏 工作域大小
当前的屏幕除任务栏外的工作域大小 this.Width = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width; this.Height = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height; 当前的屏幕包括任务栏的工作域大小 this.Width=System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width; this.Height=System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height; 任务栏大小 this.Width=System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width-System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width; this.Height=System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height-System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height; winform实现全屏显示 WinForm: this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; this.WindowState = System.Windows.Forms.FormWindowState.Maximized; this.TopMost = true; winform获取屏幕区域 Rectangle ScreenArea = System.Windows.Forms.Screen.GetWorkingArea(this);
原文:http://www.cnblogs.com/shenchao/p/4722233.html
内容总结
以上是互联网集市为您收集整理的C#:控制WinForm界面的显示全部内容,希望文章能够帮你解决C#:控制WinForm界面的显示所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。