【C#】Timer、窗体大小和屏幕大小

来源:互联网 发布:js弹出div模态窗口 编辑:程序博客网 时间:2024/05/17 05:06

这也是很简单的事情,窗体大小能取就能用,屏幕大小用Screen.PrimaryScreen.Bounds.Width/Height;。在C#中的Timer其实与VB.NET的Timer差不多,《【Visual Basic】计时器与窗体屏幕尺寸的取法》(点击打开链接),下面用一个小例子还说明这个问题:


如图,在一个窗体中有两个按钮,点击可以之后,窗体就开始横向增加大小,增大到当前屏幕大小的1/2就会开始缩小,直到宽度变成当前屏幕的1/4,则又开始重新变大。

窗体的布局如下图所示:


先把Form1的MaximizeBox与MinimizeBox变成False。

之后拖入两个按钮,利用对其工具将其摆好,如《【C#】用组件的Anchor属性解决最大化组件的缩放问题》(点击打开链接)一样,将其Anchor从Top,left修改成Top,left,right,让宽度的变化自己随窗体的大小变化而变化。

最后拖入本文的主角——Timer,可以看到,这个timer是不占位置的,相当于一个在这个窗体内的小线程。

之后,点击这个Timer、两个Button,修改成如下的代码:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace Timer{    public partial class Form1 : Form    {        private bool flag = true;//用来指导这个窗体是增加还是减少        public Form1()        {            InitializeComponent();        }        private void timer1_Tick(object sender, EventArgs e)        {            if (flag)            {                this.Width += 4;//窗体宽度+4                if (this.Width > Screen.PrimaryScreen.Bounds.Width / 2)//如果窗体的宽度达屏幕的1/2                {                    flag = false;//则窗体开始减少                }            }            else            {                this.Width -= 4;                if (this.Width < Screen.PrimaryScreen.Bounds.Width / 4)                {                    flag = true;                }            }        }        //计时器开始为不开启状态        //开始计时器        private void button1_Click(object sender, EventArgs e)        {            timer1.Interval = 50;//计时器的代码,每50毫秒也就是0.05s运行一次            timer1.Enabled = true;        }        //关闭计时器        private void button2_Click(object sender, EventArgs e)        {            timer1.Enabled = false;        }    }}


0 0
原创粉丝点击