第二阶段Winform-3:常用控件介绍2
0731知识点总结
1_Timer控件
(1)Timer 组件是一种常用的控件,用于在指定的时间间隔后执行某个操作或方法。Windows Forms 提供了两种不同类型的定时器,但当我们谈论“Timer 组件”时,通常指的是 System.Windows.Forms.Timer 类。
System.Windows.Forms.Timer 组件是专为 Windows Forms 应用程序设计的,它运行在 UI 线程上。这意味着当定时器触发时,它会直接在 UI 线程上执行回调方法(即 Tick 事件处理器),这使得更新UI控件(如标签、文本框等)变得非常简单和安全。然而,这也意味着如果回调方法执行时间过长,它可能会阻塞UI,导致应用程序界面响应迟缓。
(2)属性、事件和方法
属性/事件/方法 | 说明 | |
---|---|---|
Internal | 时间间隔,以毫秒为单位 | |
Tick事件 | 经过指定的时间间隔发生 | |
Start() | 启动Timer | |
Stop() | 停止Timer |
(3)需要使用Start()方法Stop()方法和启动和停止Timer
timer1 = new Timer();
timer1.Interval = 1000;
timer1.Tick += timer1_Tick;
timer1.Start();
private void timer1_Tick(object sender, EventArgs e)
{MessageBox.Show("aaaa");
}
2_DateTimePicker 控件:日期时间选择器
(1) DateTimePicker控件允许用户从日期或时间列表中选择单个项。 用于表示日期时,它分为两部分显示:以文本表示日期的下拉列表,以及单击列表旁边的向下箭头时显示的网格。
(2)属性、事件和方法
属性/事件/方法 | 说明 | 值 |
---|---|---|
Value | 当前选中的日期和时间 | |
Format | 设置日期和时间的显示格式 | Short, Long, Time,Custom |
ShowCheckBox | 设置是否显示复选框以允许用户选择空值 | true/false |
ValueChangeds事件 | 日期或时间改变时触发的事件 |
public Form1()
{InitializeComponent();dateTimePicker = new DateTimePicker();
dateTimePicker.Location = new Point(10,10);dateTimePicker.Size = new Size(200, 20);dateTimePicker.Format = DateTimePickerFormat.Long;//设置是否显示复选框 一般情况下 不需要显示复选框dateTimePicker.ShowCheckBox = false;
//设置显示的时间dateTimePicker.Value = DateTime.Now;Controls.Add(dateTimePicker);//ValueChanged 当日期选择框中的Value发生改变的时候触发dateTimePicker.ValueChanged += Gaibian;
}
public void Gaibian(object sender,EventArgs e)
{MessageBox.Show($"您当前选择的日期时间是{dateTimePicker.Value.ToShortTimeString()}");
}
(3)注意事项
DateTimePicker
控件的Value
属性表示当前选中的日期和时间。你可以通过修改这个属性来改变选中的日期时间,或者在用户改变选择时通过事件处理器来处理变化。ValueChanged
事件在用户改变选中的日期或时间时触发。你可以在这个事件的事件处理器中执行基于新选择的日期时间的操作。Format
属性允许你设置日期时间的显示格式。DateTimePickerFormat
枚举提供了几种预定义的格式选项,如Short
、Long
、Time
等。ShowCheckBox
属性允许你控制是否显示一个复选框,以便用户可以清除他们的选择。然而,在大多数情况下,你可能不希望这样做,因此可以将此属性设置为false
。默认情况下,
DateTimePicker
控件允许用户通过日历控件选择日期,并通过文本框输入日期时间(尽管这取决于Format
和CustomFormat
属性的设置)。你可以通过禁用文本框的输入来限制用户只能通过日历控件选择日期时间,但这通常不是必要的,因为DateTimePicker
已经提供了很好的输入验证。
3_MonthCalendar控件 日期显示
(1)indows 窗体 MonthCalendar 控件为用户查看和设置日期信息提供了一个直观的图形界面。 该控件以网格形式显示日历:网格包含月份的编号日期,这些日期排列在周一到周日下的七个列中,并且突出显示选定的日期范围。
4_ProgressBar组件 进度条
(1)ProgressBar 组件用于向用户显示某个操作的进度。它通常显示为一个水平条,其中填充的部分表示进度的百分比。ProgressBar 组件非常适合于长时间运行的操作,比如文件下载、数据处理等,因为它可以为用户提供视觉反馈,表明操作正在进行中且应用程序没有挂起。
(2)属性、事件、方法
属性/事件/方法 | 说明 | |
---|---|---|
Minimum | 进度条的最小值,默认为0 | |
Maximum | 进度条的最大值,默认为100。这表示进度条的完整长度。 | |
Value | 进度条的当前值,它应该在 Minimum 和 Maximum之间 | |
Style | 进度条的样式,可以是Blocks(默认,显示为一系列块)、Continuous(连续填充)、Marquee(一种特殊的动画效果,通常用于表示不确定的进度) |
5_dataGridView控件 数据网格试图
(1)DataGridView控件是一个非常强大的工具,用于在Windows窗体应用程序中显示和操作表格数据。它提供了丰富的功能和灵活性,使得数据的展示、编辑、排序、筛选等变得简单直观。
(2)属性,事件,方法
属性/事件/方法 | 说明 | |
---|---|---|
DataSource | 数据源,用于绑定数据 | |
Columns | 数据网格中的列集合 | |
Rows | 数据网格中的行集合 | |
AllowUserToAddRows | 设置用户是否可以添加行(true/false) | |
AllowUserToDeleteRows | 设置用户是否可以删除行(true/false) | |
AutoSizeColumnsMode | 可见列自动调整大小 | |
CellClick | 单元格被点击时触发的事件。 |
(3)手动添加行列
dataTable = new DataTable();
dataTable.Columns.Add("ID");
dataTable.Columns.Add("Name");
dataTable.Columns.Add("Sex");
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");
(4)设置数据的显示:如果已经通过数据源自动创建了列,并且只是想要修改某些属性(如列标题),可以直接通过Columns
集合访问这些列
DataGridView dg = new DataGridView();
dg.Size = new Size(440, 250);
dg.Location = new Point(10, 10);
Controls.Add(dg);
//自定义行和列
//显示的列DataGridViewTextBoxColumn idColumn= new DataGridViewTextBoxColumn();
idColumn.Name = "ID";
idColumn.HeaderText="ID";
idColumn.DataPropertyName = "ID";
idColumn.Visible = true;
DataGridViewTextBoxColumn NameColumn = new DataGridViewTextBoxColumn();
NameColumn.Name = "Name";
NameColumn.HeaderText = "Name";
NameColumn.DataPropertyName = "Name";
NameColumn.Visible = true;
DataGridViewTextBoxColumn stateColumn = new DataGridViewTextBoxColumn();
stateColumn.Name = "state";
stateColumn.HeaderText = "state";
stateColumn.DataPropertyName = "state";
stateColumn.Visible = true;
DataGridViewTextBoxColumn PhoneColumn = new DataGridViewTextBoxColumn();
PhoneColumn.Name = "Phone";
PhoneColumn.HeaderText = "Phone";
PhoneColumn.DataPropertyName = "Phone";
PhoneColumn.Visible = true;
dg.Columns.Add(idColumn);
dg.Columns.Add(NameColumn);
dg.Columns.Add(stateColumn);
dg.Columns.Add(PhoneColumn);
//DataGridView的实例对象 由一个DataSource 属性 用来设置数据源
dg.DataSource = dataTable;
6_TreeView控件 树形试图
(1)TreeView 控件用于显示一个节点(或项)的层次结构,这些节点可以展开或折叠以显示或隐藏子节点。TreeView 控件非常适合于显示文件系统、组织结构图、分类列表等场景。
(2)属性、事件、方法
属性/事件/方法 | 说明 | |
---|---|---|
Nodes | :树形视图中的节点集合 | |
SelectedNode | 当前选中的节点 | |
ImageList | 设置树形视图节点图标的图像列表 | |
AfterSelect | 节点被选中后触发的事件 |
(3)示例代码
public Form1(){InitializeComponent();
//创建一个根节点TreeNode rootNode =new TreeNode("根节点");
//创建子节点TreeNode childNode1 = new TreeNode("子节点1");TreeNode childNode2 = new TreeNode("子节点2");
TreeNode grandNode1 = new TreeNode("孙节点1");TreeNode grandNode2 = new TreeNode("孙节点2");TreeNode grandNode3 = new TreeNode("孙节点3");
childNode2.Nodes.Add(grandNode1);childNode2.Nodes.Add(grandNode2);childNode2.Nodes.Add(grandNode3);
rootNode.Nodes.Add(childNode1);rootNode.Nodes.Add(childNode2);rootNode.Nodes.Add(childNode3);treeView1.Nodes.Add(rootNode);
//展开所有的节点treeView1.ExpandAll();}
7_ListView组件 列表视图
(1)ListView控件的常用属性:
属性 | 说明 |
---|---|
Name | 控件的名称 |
Items | 包含控件中所有项的集合 |
Columns | 控件中显示的所有列标题的集合 |
View | 控件的显示视图 |
LargeImageList | 当控件以大图标视图显示时使用的ImageList |
SmallImageList | 当控件以小图标视图显示时使用的ImageList |
GridLines | 在包含控件中的行和列之间是否显示网格线 |
MultiSelect | 是否可以选择多项 |
SelectedItems | 获取在控件选定的项 |
FullRowSelect | 单击某项是否选择其所有子项 |
(2)ListView控件的常用方法:
方法 | 说明 |
---|---|
Clear | 从控件中移除所有项和列,清空ListView |
(3)ListView控件的常用事件:
事件 | 说明 |
---|---|
Click | 在单击ListView控件时触发 |
SelectedIndexChanged | 当选定项发生更改时触发 |
(4)ListView控件具有5种显示视图,由View属性设置,View属性的值及说明见下表:
属性值 | 说明 |
---|---|
Details | 详细视图,标准的二维表格,第一行为表头 |
LargeIcon(默认值) | 大图标,每一项显示为一个大图标 |
SmallIcon | 小图标,每一项显示为一个小图标 |
List | 列表,每项显示一行 |
Tile | 平铺,显示大图标,并在右侧显示详细信息 |
A. 详细视图(Details)
B. 大图标(LargeIcon)
C. 小图标(SmallIcon)
D. 列表(ImageList)
E.平铺(Tile)
(5)手动添加代码
public Form1()
{InitializeComponent();ImageList imageList1 = new ImageList();ImageList imageList2 = new ImageList();
listView1.LargeImageList=imageList1;listView1.SmallImageList = imageList2;
listView1.View = View.Details;listView1.Columns.Add("名称");listView1.Columns.Add("修改日期");listView1.Columns.Add("类型");listView1.Columns.Add("大小");
ListViewItem item1 = new ListViewItem("WIN");item1.SubItems.Add("2024/7/31");item1.SubItems.Add("文件夹");item1.SubItems.Add("2.2G");
ListViewItem item2 = new ListViewItem("工作资料");item2.SubItems.Add("2024/7/31");item2.SubItems.Add("文件夹");item2.SubItems.Add("2.2G");ListViewItem item3 = new ListViewItem("个人资料");item3.SubItems.Add("2024/7/31");item3.SubItems.Add("文件夹");item3.SubItems.Add("2.2G");
listView1.Items.Add(item1);listView1.Items.Add(item2);listView1.Items.Add(item3);//直接通过ListViewItem对象名删除
this.lvTimi.Items.Remove(item1);
//通过索引小标删除
this.lvTimi.Items.RemoveAt(0);
//通过键值对中的键删除,此处的键就是ListViewItem对象的name
this.lvTimi.Items.RemoveByKey("itemAjl");}
8_MenuStrip 组件 菜单条
(1)通常出现在应用程序的顶部。主要由菜单栏、主菜单、子菜单和快捷键组成。
(2)属性、方法、事件
属性/方法/事件 | 说明 | |
---|---|---|
Items | 菜单项集合 | |
Text | 菜单项的文本 | |
ShortcutKeys | 设置菜单项的快捷键 | |
Click | 菜单项被点击时触发的事件 |
9_ToolStrip 组件 工具栏
属性/方法/事件 | ||
---|---|---|
Items | 工具栏项的集合 | |
Text | 工具栏项的文本 | |
Image | 工具栏项的图标 | |
Click | 工具栏项被点击时触发的事件 |
10_StatusStrip组件 状态栏
(1)状态栏通常用于显示应用程序的系统信息。如操作员信息、软件版本号、当前日期和欢迎信息等。状态栏通常位于应用程序的窗口底部。
(2)
属性/事件/方法 | ||
---|---|---|
Items | 状态栏项的集合 | |
Text | 状态栏项的文本 | |
Spring | 设置状态栏项是否自动填充剩余空间(true/false) |
11_NotifyIcon 组件
(1)软件启动后会在系统右下角创建一个小图标,称为系统托盘,当软件在后台运行时,可以通过系统托盘对软件进行相关操作。
(2)属性和事件
属性/事件 | 说明 |
---|---|
Icon | 将在系统栏中显示的图标,必须为ico格式文件 |
Text | 当鼠标悬停在图标上时,显示的文本 |
ContentMenuScript | 与系统托盘图标相关联的右键快捷菜单 |
Click | 通知图标被点击时触发的事件 |