目录
[一、Timer 定时器组件](#一、Timer 定时器组件)
[二、DateTimePicker 日期选择器](#二、DateTimePicker 日期选择器)
[三、ProgressBar 进度条](#三、ProgressBar 进度条)
[四、DataGridView 表格控件](#四、DataGridView 表格控件)
[4.1 绑定实体 List](#4.1 绑定实体 List)
[4.2 绑定 DataTable 数据表](#4.2 绑定 DataTable 数据表)
一、Timer 定时器组件

核心说明
运行在 UI 线程,定时触发 Tick 事件,毫秒为单位设置间隔,Start () 开启、Stop () 停止,适合 UI 动画、倒计时、自动刷新。
cs
using System;
using System.Drawing;
using System.Windows.Forms;
namespace _3定时器
{
public partial class Form1 : Form
{
Timer t;
public Form1()
{
InitializeComponent();
t = new Timer();
t.Interval = 1;
t.Tick += T_Tick;
}
Random r = new Random();
int x = 3;
private void T_Tick(object sender, EventArgs e)
{
int red = r.Next(256);
int green = r.Next(256);
int blue = r.Next(256);
label1.BackColor = Color.FromArgb(red, green, blue);
label1.Left += x;
if (label1.Left >= this.Width - label1.Width || label1.Left <= 0)
{
x = -x;
}
}
private void button1_Click(object sender, EventArgs e)
{
t.Start();
}
private void button2_Click(object sender, EventArgs e)
{
t.Stop();
}
}
}
二、DateTimePicker 日期选择器

核心说明
可视化选择年月日时分秒,Format 设置显示格式,ValueChanged 监听日期修改,Value 读取选中时间。
cs
using System;
using System.Windows.Forms;
namespace _4dataTimePick
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
DateTimePicker dt = new DateTimePicker()
{
Format = DateTimePickerFormat.Long,
Value = new DateTime(2000, 1, 1)
};
dt.ValueChanged += Dt_ValueChanged;
MessageBox.Show(dt.Value.ToLongDateString());
this.Controls.Add(dt);
}
private void Dt_ValueChanged(object sender, EventArgs e)
{
MessageBox.Show(((DateTimePicker)sender).Value.ToLongDateString());
}
private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e)
{
MessageBox.Show(monthCalendar1.SelectionStart.ToShortDateString());
}
}
}
三、ProgressBar 进度条

核心说明
Minimum 最小值、Maximum 最大值、Value 当前进度值,直观展示任务加载进度。
cs
using System;
using System.Windows.Forms;
namespace _5进度条progressbar
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
getValue();
}
public void getValue()
{
for (int i = 0; i < 101; i++)
{
progressBar1.Value = i;
}
}
}
}
四、DataGridView 表格控件

核心说明
桌面开发表格展示神器,支持绑定 List 实体集合、DataTable 数据表,可自定义列、单元格点击事件,支持增删改查。
4.1 绑定实体 List
cs
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace _6datagridview
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
BindData();
}
List<Student> list = new List<Student>();
public void BindData()
{
list.Add(new Student() { Name = "姆巴佩", Id = "001", Age = 20, Sex = "男", Phone = "12121" });
list.Add(new Student() { Name = "梅西", Id = "002", Age = 30, Sex = "男", Phone = "12121" });
list.Add(new Student() { Name = "C罗", Id = "003", Age = 31, Sex = "男", Phone = "12121" });
list.Add(new Student() { Name = "哈兰德", Id = "004", Age = 19, Sex = "男", Phone = "12121" });
}
private void button1_Click(object sender, EventArgs e)
{
dataGridView1.AutoGenerateColumns = false;
dataGridView1.DataSource = list;
}
private void button2_Click(object sender, EventArgs e)
{
DataGridView dg = new DataGridView();
DataGridViewTextBoxColumn stuId = new DataGridViewTextBoxColumn();
stuId.DataPropertyName = "Id";
stuId.HeaderText = "学号";
stuId.Name = "Id";
stuId.Visible = true;
DataGridViewTextBoxColumn nameColu = new DataGridViewTextBoxColumn();
nameColu.DataPropertyName = "Name";
nameColu.HeaderText = "姓名";
nameColu.Name = "Name";
nameColu.Visible = true;
DataGridViewTextBoxColumn sex = new DataGridViewTextBoxColumn();
sex.DataPropertyName = "Sex";
sex.HeaderText = "性别";
sex.Name = "Sex";
sex.Visible = true;
DataGridViewTextBoxColumn age = new DataGridViewTextBoxColumn();
age.DataPropertyName = "Age";
age.HeaderText = "年龄";
age.Name = "Age";
age.Visible = true;
DataGridViewTextBoxColumn phone = new DataGridViewTextBoxColumn();
phone.DataPropertyName = "Phone";
phone.HeaderText = "手机";
phone.Name = "Phone";
phone.Visible = true;
dg.Columns.Add(stuId);
dg.Columns.Add(nameColu);
dg.Columns.Add(sex);
dg.Columns.Add(age);
dg.Columns.Add(phone);
dg.CellClick += Dg_CellClick;
dg.AutoGenerateColumns = false;
dg.Size = new Size(600, 300);
this.Controls.Add(dg);
dg.DataSource = list;
}
private void Dg_CellClick(object sender, DataGridViewCellEventArgs e)
{
MessageBox.Show(e.ColumnIndex + "");
}
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
DataGridViewRow row = dataGridView1.Rows[e.RowIndex];
MessageBox.Show(row.Cells[e.ColumnIndex].Value + "");
}
}
public class Student
{
public string Name { get; set; }
public string Id { get; set; }
public int Age { get; set; }
public string Sex { get; set; }
public string Phone { get; set; }
}
}
4.2 绑定 DataTable 数据表

cs
using System;
using System.Data;
using System.Windows.Forms;
namespace _7datagridview绑定dataTable类型的数据
{
public partial class Form1 : Form
{
DataTable dataTable;
public Form1()
{
InitializeComponent();
dataTable = new DataTable();
dataTable.Columns.Add("学号");
dataTable.Columns.Add("Name");
dataTable.Columns.Add("State");
dataTable.Columns.Add("Phone");
dataTable.Rows.Add(1, "吴亦凡", "坐牢", "1343");
dataTable.Rows.Add(2, "罗志祥", "复出", "1343");
dataTable.Rows.Add(3, "李云迪", "未知", "1343");
dataTable.Rows.Add(4, "李易峰", "封杀", "1343");
dataTable.Rows.Add(5, "郑爽", "封杀", "1343");
dataGridView1.DataSource = dataTable;
}
private void button1_Click(object sender, EventArgs e)
{
dataTable.Rows.Add(6, "郑爽", "封杀", "13xxxx43");
}
}
}