您的位置:首页 > 编程语言 > C#

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

2015-12-01 17:09 363 查看
这也是很简单的事情,窗体大小能取就能用,屏幕大小用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;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: