9.17、定时器Timer
9.17.1、System.Windows.Forms.Timer
9.17.1.1、属性
Name:唯一标识该控件的属性,在程序中就是通过该属性来调用控件的。
Interval:触发Tick事件的频率,每隔Interval毫秒触发一次Tick事件。
Enabled:true表示该定时器正常,false表示定时器失效。该属性默认为false,当设置为true的时候,相当于timer1.Start(),设置为false的时候,相当于timer1.Stop()。
9.17.1.2、函数
timer1.Start();//启动定时器
timer1.Stop();//停止定时器
9.17.1.3、事件
timer1.Tick += new System.EventHandler(this.timer1_Tick);
定时器启动后,不会立马触发事件,而是开始计时,当时间到达间隔大小之后,会触发唯一Tick事件;然后又开始计时,等待着下一次的间隔结束后继续执行事件。
private void timer1_Tick(object sender, EventArgs e)
{
}
9.17.2、System.Timers.Timer
9.17.1.1、初始化对象
定义一个对象:System.Timers.Timer t = new System.Timers.Timer();
指定一个事件:t.Elapsed += new System.Timers.ElapsedEventHandler(timer1_Tick);
设定时间间隔:t.Interval = 5000;
9.17.1.2、属性
Enabled:true表示该定时器正常,false表示定时器失效。该属性默认为false。当设置为true的时候,相当于timer1.Start(),设置为false的时候,相当于timer1.Stop()。
AutoReset:获取或设置一个值,该值指示Timer是应在每次指定的间隔结束时引发 Elapsed 事件,还是仅在指定的间隔第一次结束后引发该事件。设置是执行一次(false)还是一直执行(true)。
Enabled:true表示该定时器正常,false表示定时器失效。该属性默认为false,当设置为true的时候,相当于timer1.Start(),设置为false的时候,相当于timer1.Stop()。
9.17.1.3、函数
timer1.Start();//启动定时器,触发事件
timer1.Stop();//停止定时器,不触发事件
timer1.Close();//停止定时器,不触发事件,并且释放timer1所占用的资源,但是timer1对象还是存在的,没有被释放。
9.17.1.4、事件
private void timer1_Tick (object source, System.Timers.ElapsedEventArgs e)
{
}
定时器启动后,不会立马触发事件,而是开始计时,当时间到达间隔大小之后,会触发唯一Tick事件;然后又开始计时,等待着下一次的间隔结束后继续执行事件。
9.18、TreeView
9.18.1、TreeView、TreeNode 的定义
这个是一个树形控件,定义该控件:
TreeView treeView1 = new TreeView();
为了使该控件的节点能够设置图像,那么还需要定义一个图像列表,该图像列表中包含了一些图像,这些图像是有整数索引值的:
ImageList imageList1 = new ImageList();
将树形控件的ImageList属性设置成上面定义好的图像列表:
treeView1.ImageList = imageList1;
该控件是由节点构成的,该控件的所有节点都是TreeNode类型。定义一个节点:
TreeNode node = new TreeNode();
9.18.2、TreeNode节点的属性
Node.Name:该属性表示该节点的名字,可读写,而且同一个TreeView上面的不同节点的该属性是可以相同的,不会有什么错误,因为这个属性并不是唯一标识某一个节点的。
node.Text:该节点显示出来的文本值,可读写。
node.Tag:该属性是object类型的,可以记录与该节点相关的一些值。
node.ImageIndex:正常情况下未被选中时的所显示的图像的索引。
node.SelectedImageIndex:被选中时的所显示的图像的索引。
注意:以上两个属性值是通过imageList1来设置的,就是图像的索引;如果希望某一个节点选中和不选中两种情况下都显示相同的图像,那么可以将这两个属性值设置成相同即可。
node.Nodes:获取该节点的子结点的集合。
node.Parent:获取该节点的父节点,如果没有父节点就返回null。
node.FirstNode:获取该节点的子结点集合中的第一个子结点,如果该节点没有子结点,那么返回null。
node.LastNode:获取该节点的子结点集合中的最后一个子结点,如果该节点没有子结点,那么返回null。
node.NextNode:获取该节点同级的下一个节点,如果该节点同级没有下一个节点,那么返回null。
node.PrevNode:获取该节点同级的上一个节点,如果该节点同级没有上一个节点,那么返回null。
node.FullPath:获取从根节点到当前节点完整路径,每个节点用Text属性替代,节点之间用“\”分隔。
node.Checked:获取或者设置该节点是否被选中,这个是在有CheckBox的情况下使用的。
node.IsExpanded:该属性表示该节点是否处于可展开状态,即是否处于闭合状态。只读。
node.IsSelected:该属性表示该节点是否处于选中状态,只读。
9.18.3、TreeNode节点的方法
node.Remove():将该节点及其子结点全部移除。
node.Expand():展开树节点。
node.ExpandAll():展开所有子树节点。
node.Collapse:折叠该树节点。
9.18.4、Nodes的属性和方法
TreeView、 TreeNode都有Nodes集合,该集合常用属性和方法:
Nodes.Count:表示该节点集合中的节点的个数。
Nodes.Add(node):往treeView1、TreeNode的下一级子结点的集合中添加节点。
Nodes.Clear():将当前对象的Nodes节点集合清除。
注意:treview1的根节点可以有多个,往treview1.nodes里面添加多个,就会有多个根节点;treview1.nodes或者TreeNode.Nodes子结点的集合都是指当前对象的下一级,而不是下两级或者所有级。
9.18.5、TreeView的属性和方法
treeView1.SelectedNode:treeView1中选中的节点。如果treeView1刚被加载了一些节点初始化了,没有设定其选中的节点,那么默认是选中根节点的;如果手动的选中了一个节点,那么该属性就是选中的节点;如果在程序中把手动选中的节点删除了,那么有默认根节点为选中节点了;如果此时再用程序新增一个节点,那么就不选中任何节点了,该属性为null。
TreeView的事件:
选择某个节点之后就会触发该事件,其中e.Node表示当前选中的节点:
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
textBox1.Text = e.Node.Text;
}
9.19、列表视图ListView
列表视图是一个容器,可以存放数据:
9.19.1、属性
Name:唯一标识该控件的属性,在程序中就是通过该属性来调用控件的。
View:该控件的显示风格,有5种显示风格,但是如果要想显示表格的话,就必须把该属性设置成:Details
GridLines:在各个单元格周围是否显示网格线。
FullRowSelect:控制当某一个单元格被选中时,该行的其他单元格是否与该单元格一起整行突出显示,如果为false则即使选中也没什么效果。
HideSelection:当控件没有焦点,是否移除选定项的突出显示。
HeaderStyle:控制标题头是否可以点击触发事件。
MultiSelect:控制列表视图是否允许多选。如果设置成可以多选,那么可以用:
Ctrl + 鼠标点 击、Shift +鼠标点击、 Shift +上下键
Enabled:控制该控件是否可用。
Columns:列表框的列ColumnHeader的集合。
Items集合:列表框的行ListViewItem的集合。
集合的Conut属性:可以用Count属性来获得集合的ListViewItem元素个数