微软官方注解
Timer用于以用户定义的间隔引发事件。 此 Windows 计时器专为使用 UI 线程执行处理的单线程环境而设计。
它要求用户代码具有可用的 UI 消息泵,并且始终从同一线程运行,或将调用封送到另一个线程。使用此计时器时,请使用 Tick 事件执行轮询操作或显示指定时间段的初始屏幕。 每当属性 Enabled 设置为 true 且
Interval 属性大于零时,将根据 Tick 属性设置每隔一段时间 Interval 引发事件。
官方链接:Timer控件
实现侧边栏的折叠缩放
为了将注意力集中在使用Timer控件控制侧边栏的缩放,在这篇文章里不会讲关于侧边栏的制作。有兴趣的可以观看b站别人外网搬运的视频:侧边栏制作B站外网搬运视频
实现步骤:
1、选中侧边栏所在panel容器,右键选择属性;
2、分别设置最大尺寸(MaximumSize)和最小尺寸(MinimumSize);
最大尺寸一般就是正常尺寸,最小尺寸一般是折叠后想要的尺寸大小
3、从工具箱选择Timer控件;
4、选中Timer控件,右键选择属性;
5、点击闪电图标切换到事件面板,直接选中Tick所在单元格按Enter键直接生成事件;
6、在定时事件中执行相应逻辑
7、最后还需要设置一个点击事件,在这个事件里触发定时器
代码实现
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace EIS
{
public partial class Form1 : Form
{
bool sidebarExpand;//侧边栏折叠和展开标志
public Form1()
{
InitializeComponent();
}
/// <summary>
/// timer控件事件处理
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void timer1_Tick(object sender, EventArgs e)
{
if (sidebarExpand)
{//处于展开状态并发生点击,侧边栏边框一种缩减,直到设置的最小尺寸
sidebar.Width -= 10;
if(sidebar.Width == sidebar.MinimumSize.Width)
{
sidebarExpand = false;
timer1.Stop();
}
}
else
{
sidebar.Width += 10;
if (sidebar.Width == sidebar.MaximumSize.Width)
{
sidebarExpand = true;
timer1.Stop();
}
}
}
private void button1_Click(object sender, EventArgs e)
{//侧边栏折叠或展开按钮点击
timer1.Start();
}
}
}
操作步骤(图片)
1、
2、