1、TreeView控件
- Tree View控件可以为用户显示节点层次结构,就想在Windows资源管理器功能的左创个中显示文件和文件夹一样。树视图中的各个节点可能包含其他节点。称为子节点。用户可以按照展开或折叠的方式显示父节点或包含子节点的节点。通过将树是的CheckBoxes属性设置为True,还可以在节点旁边显示带有复选框的树视图。
- 添加和算出树节点
- Tree View控件以层侧结构的方式显示节点,Nodes属性包含舒适图中的顶级节点列表,它是TreeNode对象集合。
- 添加节点:先创建TreeNode对象,然后通过Nodes的Add方法创建的TreeNode对象添加为TreeView节点;
- 删除节点,可用Nodes属性的Remove方法或RemoveAt方法
常用属性:
- Nodes:TreeView控件根节点集合
- SelectedNode:获取或设置当前TreeView控件中选定的树节点
- ImageList:获取或设置TreeView中所使用的图像集,关联ImageList控件
- ImageIndex:获取或设置树节点显示的图像,在ImageList图像集中的索引
常用事件:
- AfterCollapse:在折叠树节点后触发
- AfterExpand:在展开树节点后触发
- AfterSelect:在更改选中节点后触发
- Click:在点击TreeView控件时触发
示例:
2、 ListView控件
- ListView控件是Windows列表视图控件,该控件显示可用五种不同视图之一显示的向集合
- LargeIcon:在想文本胖显示大图标,如果控件足够大,则显示在多列中
- SmallIcon:除显示小图标外,其他方面与大图标视图模式相同
- List:显示小图标,单总是显示在单列中。
- Details:在多列中显示向。
- Tile:每个向都显示一位一个完整大小的图标,在他的右边带向标签和子项信息
示例:
3、ImageList控件
- ImageList,又叫存储图像控件,用来存储图像的组合,但它不能显示图像,要显示它存储的图像需要借用第二个控件
- 第二个控件是包含ImageList属性的控件(例如:ListView或TreeView),这个属性一般和ImageIndex属性一起使用。ImageList属性设置为ImageList组件的一个实例,ImageIndex属性设置为ImageList中对应图像的索引
- ImageList控件两个常用属性
(1)ImageSize用来设置图像的大小,Width属性和Height属性,用来设置图像的宽和高,其默认值都为16,取值范围1~256之间。
(2)ColorDepth,用来设置颜色深度,取值为4位~32位。
- ImageList一个方法
raw:用于绘制指定的图像(可以理解为显示图像)
参考代码如下:
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 _3_ImageList控件
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button3_Click_1(object sender, EventArgs e)
{
//声明一个图像变量
Image image1 = Image.FromFile(@"C:\Users\Admin\Desktop\Images\1.png");
//imageList控件添加元素的方法
//方法1,添加单个元素
imageList1.Images.Add(image1);
//创建了一个窗口句柄(Handle) H wnd(windows)
Graphics mygph = Graphics.FromHwnd(this.Handle);
//Draw有三种方法
//第一种 (graphics对象,左上角点坐标,索引值)
imageList1.Draw(mygph, new Point(50, 50), 0); //第一个参数是句柄,第二个参数是图片显示起始位置(图片左上角的位置,用于定位图片),第三个参数是图片索引值,即ImageList中的图片索引
//第二种:(graphics对象,水平坐标,垂直坐标,索引值)
//第三种:(graphics对象,水平坐标,垂直坐标,图像宽度,图像高度,索引值)
}
private void button1_Click(object sender, EventArgs e)
{
//imageList控件添加元素的方法
//方法2 一次添加多个元素
Image image2 = Image.FromFile(@"C:\Users\Admin\Desktop\Images\2.png");
Image image3 = Image.FromFile(@"C:\Users\Admin\Desktop\Images\3.png");
Image image4 = Image.FromFile(@"C:\Users\Admin\Desktop\Images\4.png");
Image[] images = { image2, image3, image4 };
imageList1.Images.AddRange(images);
//方法3 AddStrip
Image image5 = Image.FromFile(@"C:\Users\Admin\Desktop\Images\5.png");
Image image6 = Image.FromFile(@"C:\Users\Admin\Desktop\Images\6.png");
imageList1.Images.AddStrip(image5);
imageList1.Images.AddStrip(image6);
//创建了一个窗口句柄(Handle) H wnd(windows)
Graphics mygph = Graphics.FromHwnd(this.Handle);
for (int i = 0; i < imageList1.Images.Count; i++)
{
imageList1.Draw(mygph, new Point(50, 50), i);
//因为显示速度太快,给线程添加一个休眠时间;
System.Threading.Thread.Sleep(1000);
}
}
private void button2_Click(object sender, EventArgs e)
{
//删除imageList对象的方法
//removeAt(索引值)
imageList1.Images.RemoveAt(5);
imageList1.Images.RemoveAt(4);
imageList1.Images.RemoveAt(3);
}
}
}