AI智能
改变未来

c#开发之Windows高级控件1

即将毕业,从c/c++转向c#,linux转Windows,先提前学习工作中会用到的的基础知识。

1.ImageList控件

该控件主要是用来存储并显示图像集(多张图片)。
示例:用两个imagelist显示两个不同大小的图像,并有可以进行删除图像的按钮。
代码:

private void button1_Click(object sender, EventArgs e){pictureBox1.Image = imageList1.Images[0];\\\\将索引为0的图片加picturebox控件中显示}private void button2_Click(object sender, EventArgs e){pictureBox1.Image = imageList2.Images[0];\\\\将索引为1的图片加到picturebox控件中显示}private void Form1_Load(object sender, EventArgs e){//将图片颜色设置为Depth32Bit颜色,默认的8bit显示的图像非常模糊this.imageList1.ColorDepth = ColorDepth.Depth32Bit;this.imageList2.ColorDepth = ColorDepth.Depth32Bit;//添加图片文件到imagelist中imageList1.Images.Add(Image.FromFile(@\"C:\\Users\\13698\\Desktop\\文件\\图片\\02d8e7f06e6a1af3db6109a0a06fec5c34.jpg\"));imageList2.Images.Add(Image.FromFile(@\"C:\\Users\\13698\\Desktop\\文件\\图片\\u=2845221160,4019800402&fm=26&gp=0.jpg\"));//设置imagelist的大小,范围1--256imageList1.ImageSize = new Size(256, 256);imageList2.ImageSize = new Size(200, 200);//设置picturebox大小,范围1--256pictureBox1.Width = 256;pictureBox1.Height = 256;}private void button3_Click(object sender, EventArgs e){//删除图片if(imageList1.Images.Count>0)imageList1.Images.RemoveAt(0);if (imageList1.Images.Count > 0)imageList2.Images.RemoveAt(0);}

2.ListView控件

该控件是显示带图标的项的列表,可以显示大图标,小图标,数据。相当于资源管理器的查看里面显示方式:

listview通过view属性来设置项的显示方式,即五种视图。
view属性:

属性 说明
Details 每个项显示在不同的行上,可以显示任意的列数,但是只有第一列能有图标,其他列只能是文字信息,且每一列都有列表头,用来概括对应列的信息
LargeIcon 大图标并在下面有标签,这是默认的视图模式
List 有小图标,且右边有标签,但没有列表头,各项只能以竖列的方式排列
SmallIcon 小图标,右边有标签
Title 每个项都是一个完整大小的图标,在右边带有项标签和子项信息,且只有WindowsXP和Windows Server 2003支持


示例:将带有图标的项平铺,并分组,然后有添加删除功能。

private void Form1_Load(object sender, EventArgs e){listView1.LargeImageList = imageList1;//listview控件设置为LargeImageList,意思是listview的大图标在imagelist中选择listView1.View = View.Tile;//view设置为Tile属性值,该属性值用于启用平铺视图//添加两个分组listView1.Groups.Add(new ListViewGroup(\"人物\", HorizontalAlignment.Left));listView1.Groups.Add(new ListViewGroup(\"绝招\", HorizontalAlignment.Left));//向imagelist添加两张图标imageList1.Images.Add(Image.FromFile(@\"C:\\Users\\13698\\Desktop\\文件\\图片\\resizeApi.png\"));imageList1.Images.Add(Image.FromFile(@\"C:\\Users\\13698\\Desktop\\文件\\图片\\05110fdb1b304e199f4e992e1bfd257b.png\"));//给第一组添加项listView1.Items.Add(\"路飞\");listView1.Items.Add(\"索隆\");listView1.Items.Add(\"山治\");//给第一组的项添加索引为0(即第一个添加的图标)的图标listView1.Items[0].ImageIndex = 0;listView1.Items[1].ImageIndex = 0;listView1.Items[2].ImageIndex = 0;//将前三项添加到第一组listView1.Items[0].Group = listView1.Groups[0];listView1.Items[1].Group = listView1.Groups[0];listView1.Items[2].Group = listView1.Groups[0];//给第二组添加项listView1.Items.Add(\"大猿王枪\");listView1.Items.Add(\"一大.三千.大千世界\");listView1.Items.Add(\"恶魔风脚\");//给前三组添加第二张图标listView1.Items[3].ImageIndex = 1;listView1.Items[4].ImageIndex = 1;listView1.Items[5].ImageIndex = 1;//给后三个项目添加到第二组listView1.Items[3].Group = listView1.Groups[1];listView1.Items[4].Group = listView1.Groups[1];listView1.Items[5].Group = listView1.Groups[1];//设置平铺大小listView1.TileSize = new Size(100, 50);}//给第一组手动添加项private void button1_Click(object sender, EventArgs e){if (textBox1.Text == \"\")MessageBox.Show(\"不能输入为空!\");else{listView1.Items.Add(textBox1.Text.Trim());listView1.Items[listView1.Items.Count-1].ImageIndex = 0;listView1.Items[listView1.Items.Count-1].Group = listView1.Groups[0];}}//给第二组手动添加项private void button2_Click(object sender, EventArgs e){if (listView1.Items.Count == 0)MessageBox.Show(\"无项目可删去!\");if (listView1.SelectedItems.Count == 0)MessageBox.Show(\"请选择需要删减的项目\");elselistView1.Items.RemoveAt(listView1.SelectedItems[0].Index);}//手动清除被选中的项private void button3_Click(object sender, EventArgs e){if (textBox1.Text == \"\")MessageBox.Show(\"不能输入为空!\");else{listView1.Items.Add(textBox1.Text.Trim());listView1.Items[listView1.Items.Count - 1].ImageIndex = 1;listView1.Items[listView1.Items.Count - 1].Group = listView1.Groups[1];}}



listview还可以用GridLines和FullRowSelect属性进行操作,可以设置成类似表格的视图,其view属性必须设置成view.Details。

3.TreeView控件

该控件用于为用户显示节点显示结构,每个节点又可以包含子节点,包含子节点的节点叫做父节点。如下图:

示例:创建两个父节点和四个子节点,并且可以手动添加节点和删除节点

private void Form1_Load(object sender, EventArgs e){//添加图标imageList1.Images.Add(Image.FromFile(@\"C:\\Users\\13698\\Desktop\\文件\\图片\\resizeApi.png\"));imageList1.Images.Add(Image.FromFile(@\"C:\\Users\\13698\\Desktop\\文件\\图片\\下载.png\"));//设置treeview的图像集treeView1.ImageList = imageList1;//添加父节点TreeNode fa_node = treeView1.Nodes.Add(\"游戏\");TreeNode fa_node1 = treeView1.Nodes.Add(\"编程软件\");//添加子节点TreeNode so_node = new TreeNode(\"GTA5\");TreeNode so_node1 = new TreeNode(\"NBA2k20\");TreeNode so_node2 = new TreeNode(\"pycharm\");TreeNode so_node3 = new TreeNode(\"VS\");//将子节点添加到父节点fa_node.Nodes.Add(so_node);fa_node.Nodes.Add(so_node1);fa_node1.Nodes.Add(so_node2);fa_node1.Nodes.Add(so_node3);//统一设置所有节点的图标treeView1.ImageIndex = 0;//当鼠标指向该节点时,图标变为索引1的图标treeView1.SelectedImageIndex = 1;}//给任意节点手动添加子节点private void button1_Click(object sender, EventArgs e){if (textBox1.Text == \"\"){MessageBox.Show(\"请输入添加的内容!\");}else{TreeNode tn = treeView1.SelectedNode;TreeNode so_node = new TreeNode(textBox1.Text.Trim());tn.Nodes.Add(so_node);}}//手动删除被选中的节点private void button3_Click(object sender, EventArgs e){treeView1.Nodes.Remove(treeView1.SelectedNode);}

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » c#开发之Windows高级控件1