winform小知识——使用Timer控件进行侧边栏的折叠缩放

Timer控件

  • 微软官方注解
  • 实现侧边栏的折叠缩放
    • 实现步骤:
    • 代码实现
    • 操作步骤(图片)

微软官方注解

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、在这里插入图片描述