C#应用程序界面开发进阶——高级窗体控件(2)——列表视图控件(最后一个代码不行)

2023-05-16

列表视图(ListView)控件是Windows列表视图控件,用于显示带图标的项的列表。

创建列表视图控件

为列表视图控件添加项有以下两种方法。

(1)直接单击控件上方的小箭头,然后再单击“编辑项”,就会弹出“ListViewItem集合编辑器”对话框。

  

通过Text和Font属性,可以修改项的名称和字体大小。

(2)通过使用控件的Items属性的Add方法和RemoveAt方法,实现项的添加和删除。

编写程序,在ListView控件中添加和删除项。

 

 添加两个button控件,button1和button2分别是添加和移除。

 添加TextBox控件

在button1_Click事件,并调用Add方法,将创建好的项添加到集合中;

在button2_Click事件,首先对ListView控件中的项进行判断,如果集合中还存在项,就调用RemoveAt方法,删除鼠标选中的项。

 运行结果如下:

输入文字,点击添加

点击某一个文字,再点击移除

使用列表视图控件

ListView控件可以通过View属性显示可用五种不同视图之一显示的项集合。

View属性
属性值说明
LargeIcon在项文本旁显示大图标,如果控件足够大,则项显示在多列中
SmallIcon除显示小图标外,其他方面与大图标视图模式相同
List显示小图标,但总是显示在单列中
Details在多列中显示项
Tile每个项都显示为一个完整大小的图标,在它的左边带项标签和子项信息。(仅支持Windows XP/Server 2003)

1、为ListView控件的项分组

使用ListView控件的分组功能可以用分组形式显示相关组项。在屏幕上,这些组由包含组标题的水平组标头分隔。

为ListView控件的项分组有以下两种方法。

(1)ListView控件的项添加完成之后,直接单击控件上方的小箭头。

然后再单击“编辑组”,就会弹出“ListViewGroup集合编辑器”对话框,并通过Header属性,对ListViewGroup1的组命名为“亚洲”,对ListViewGroup2的组命名为“欧洲”。

接着在ListViewItem集合编辑器中,选择Group属性,为ListView控件的添加项选择分组。

(2)用编程的方式可以为ListView控件中的项分组,还可以将一个组中的项移至另一组中。

编写程序,为ListView控件中的项分组。

在Form1窗体中添加ListView控件

 在Form1_Load事件中为ListView控件编写代码:

完整代码:

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 WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void listView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            //设置listView1控件的View属性
            listView1.View = View.SmallIcon;
            //向控件中添加项目
            listView1.Items.Add("中国");
            listView1.Items.Add("日本");
            listView1.Items.Add("韩国");
            listView1.Items.Add("美国");
            listView1.Items.Add("英国");
            //为listView1控件建立两个组
            listView1.Groups.Add(new ListViewGroup("亚洲", HorizontalAlignment.Left));
            listView1.Groups.Add(new ListViewGroup("欧洲", HorizontalAlignment.Left));
            //将listView1控件中的索引值 0、1、2的项添加到第一个分组
            listView1.Items[0].Group = listView1.Groups[0];
            listView1.Items[1].Group = listView1.Groups[0];
            listView1.Items[2].Group = listView1.Groups[0];
            //将listView1控件中的索引值 3、4的项添加到第一个分组
            listView1.Items[3].Group = listView1.Groups[1];
            listView1.Items[4].Group = listView1.Groups[1];
        }
    }
}

 运行结果错误,没注意发生Form1_Load事件:

 完整代码:

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 WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void listView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //设置listView1控件的View属性
            listView1.View = View.SmallIcon;
            //向控件中添加项目
            listView1.Items.Add("中国");
            listView1.Items.Add("日本");
            listView1.Items.Add("韩国");
            listView1.Items.Add("美国");
            listView1.Items.Add("英国");
            //为listView1控件建立两个组
            listView1.Groups.Add(new ListViewGroup("亚洲", HorizontalAlignment.Left));
            listView1.Groups.Add(new ListViewGroup("欧洲", HorizontalAlignment.Left));
            //将listView1控件中的索引值 0、1、2的项添加到第一个分组
            listView1.Items[0].Group = listView1.Groups[0];
            listView1.Items[1].Group = listView1.Groups[0];
            listView1.Items[2].Group = listView1.Groups[0];
            //将listView1控件中的索引值 3、4的项添加到第一个分组
            listView1.Items[3].Group = listView1.Groups[1];
            listView1.Items[4].Group = listView1.Groups[1];
        }
    }
}

运行结果如下:

2、为ListView控件中的项添加图标

如果用户要为ListView控件中的项添加图标,由需要与ImageList控件结合使用。这里需要注意,由于ImageList控件是一个组件,所以是没有可视化界面的。

为ListView控件中的项添加图标具体步骤如下:

(1)在Form窗体中添加ListView控件并添加相应的项,然后添加ImageList控件。选择ImageList控件的Images属性,会弹出“图像集合编辑器”对话框,再单击“添加”按钮,就可以将文件夹中的图片放入成员中。

 

 

 

 
 

(2)找到ListView控件的SmallImageList、LargeImageList和StateImageList属性,并将它们设置为想要使用的现在imageList1组件

 

(3)打开LiveView控件的“ListViewItem集合编辑器”对话框,选择ImageIndex属性,依次为成员中的项添加图标。

  

3、为ListView控件中的项添加列表

直接单击控件上方的小箭头,然后再单击“编辑列”,就会弹出 “Column Header集合编辑器”对话框。

 

在Column Header集合编辑器中,用户可以根据国家的属性,在成员中添加项的四个列表头,分别为chID、chEngName、chCountry和chCaptial,用于表示序号、英文名称、国家和首都。这些都可以在Name属性和Text属性中修改。

 

 

 

编写程序,在Listview控件中添加五个国家的项,并将这五个国家的序号、英文名称、国家和首都设计成列表的形式。然后以List、Detals和Title属性的形式显示。

在Form1窗体中添加ListView控件

添加一个ImageList控件 ,用来设置图标的大小

 

 在窗体中添加Label控件和ComboBox控件,用来提示List、Detals和Tile属性是三种

 

 

 

 

完整代码:

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 WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            string[,] myCountry = { { "China","中国","北京"},{"Japan","日本","东京" },{"Korea","韩国","首尔" },{"America","美国","华盛顿" },{"England","英国","伦敦" } };
            for(int i=0;i<myCountry.Length/3;i++)
            {
                ListViewItem mylvi = listView1.Items.Add(i.ToString());
                mylvi.ImageIndex = i;
                mylvi.SubItems.Add(myCountry[i, 0]);
                mylvi.SubItems.Add(myCountry[i, 1]);
                mylvi.SubItems.Add(myCountry[i, 2]);
            }
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if(comboBox1.SelectedItem.ToString()=="Details")
            {
                listView1.View = View.Details;
            }
            if (comboBox1.SelectedItem.ToString() == "List")
            {
                listView1.View = View.List;
            }
            if (comboBox1.SelectedItem.ToString() == "Tile")
            {
                listView1.View = View.Tile;
            }
        }
    }
}

在代码中,首选定义一个三行三列的二维数组,并通过for循环遍历出来;然后在comboBox1_SelectedIndexChanged事件中,判断comboBox1控件中的项是否与List、Details和Tile属性相等,如果相等,就按照该属性的方法排列ListView控件中的项。 

运行结果:

 在ListView控件中的项添加列表之后,再次运行结果,还是不行。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#应用程序界面开发进阶——高级窗体控件(2)——列表视图控件(最后一个代码不行) 的相关文章

  • Ubuntu16.04通过VNC远程桌面并开机自启动

    前置条件 xff0c 远程客户端已经安装VNC Viewer x11vnc安装 在Ubuntu 16 04中安装x11vnc xff0c 可以按照以下步骤操作 xff1a span class token comment 输入以下命令以更新
  • SpringBoot数据库读写分离

    导入maven坐标 span class token tag span class token tag span class token punctuation lt span dependency span span class toke
  • 滑模控制

    滑动模态的定义 人为设定一经过平衡点的相轨迹 xff0c 通过适当设计 xff0c 系统状态点沿着此相轨迹渐近稳定到平衡点 xff0c 或形象地称为滑向平衡点的一种运动 xff0c 滑动模态的 滑动 二字即来源于此 滑模控制的优点 xff1
  • FPGA基础之VGA(一)满屏红色

    一 项目分析 用VGA显示全屏的红色 xff0c VGA xff08 Video Graphics Array xff0c 视频图形阵列 xff09 是一种电脑显示标准 开发板采用至芯科技zx 1学习板 xff0c VGA视频显示接口是25
  • docker基础学习入门(六)------ DockerFile解析

    DockerFile是什么 Dockerfile是用来构建Docker镜像的构建文件 xff0c 是由一系列命令和参数构成的脚本 构建三步骤 xff1a 编写Dockerfile文件docker builddocker run 构建的文件什
  • C#应用程序界面开发基础——窗体控制(5)——分组类控件

    分组类控件 分组类控件有容器 xff08 Panel xff09 控件 分组框 xff08 GroupBox xff09 控件 选项卡 xff08 TabControl xff09 控件等 容器控件 容器控件是由System Windows
  • openmv4修改好的原理图和pcb文件

    openmv4修改好的原理图和pcb文件以及试验过的了 xff0c 生产过pcb文件 download csdn net download weixin 42741023 11953091
  • stm32h750/stm32h743原理图和pcb源文件

    stm32在目前使用非常广泛 xff0c 但是目前很多人都还停留在stmf1 f4仅仅只有72 128m主频阶段 xff0c stm32h743采用arm m7架构 xff0c 高达400m主频的处理器 xff0c 为我们的控制提供强有力的
  • Mac 安装brew时遇到curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused

    MAC电脑 有梯子但是感觉不好用 下面是我的折腾历程 xff0c 不想看的直接空降到最后 当时的想法 1 可能是ip被墙了 xff0c 笔记本电脑连接手机热点安装 xff0c 可解决问题 但是用手机每次到46 就停了 xff0c 然后就上网
  • docker部署Mysql并创建远程连接账号并赋权

    span class token comment 启动mysql容器 span docker run span class token operator span itd span class token operator span spa
  • Feature Squeezing

    对于 Feature Squeezing Detecting Adversarial Examples in Deep Neural Networks 的理解 很多先前的防止adversarial example的方法都是 xff0c ad
  • Linux下C语言基础——arm交叉编译器安装

    ubuntu 16 04下输入该命令 apt install gcc arm linux gnueabi 重新编译main c文件 arm linux gnueabi gcc o mian main c 执行main xff0c 如果是原来
  • error while loading shared libraries错误的原因及解決方法

    使用openCV库的时候出现的问题 xff0c 记录一下 xff1a 报错内容 xff1a error span class token keyword while span loading shared libraries libopen
  • zsh: command not found: pyinstaller

    使用pip3安装pyinstaller xff0c 如下图已安装成功 mac 64 fwkmbp pip3 install pyinstaller Requirement already satisfied pyinstaller in L
  • 进程与文件的关系--lsof

    lsof命令 作用 xff1a 1 列出指定文件被哪些进程打开 xff08 此处的文件是广义上的文件 xff0c 可以表示linux上的一切东西 xff09 2 列出指定端口被哪些进程所占用 3 根据用户或组来查询进程 4 根据文件描述符来
  • Anaconda错误CondaHTTPError: HTTP None None for url

    改镜像源 https gt http vim condarc channels defaults show channel urls true default channels http mirrors tuna tsinghua edu
  • C#应用程序界面开发基础——窗体控制(6)——菜单栏、工具栏和状态栏控件

    菜单栏 工具栏和状态栏控件 菜单栏描述了一个窗体的大致功能和风格 通过工具栏能够快速执行相应的功能 xff0c 并且具有和菜单一样的功能 xff0c 而状态栏常用于显示 一些状态信息 1 菜单控件 菜单 xff08 MunuStrip xf
  • 实战教你刷显卡BIOS

    前言 xff1a 前段时间我们显卡频道曾推出过一篇与显卡超频有关的文章 显卡超频前奏 解读显卡超频软硬基础 xff0c 该文章推出后立即得到了很多网友的热情回应 xff0c 同时也让对显卡超频不甚了解的网友有了一个基本的认识 当然 xff0
  • [Ubuntu]在LXC容器中使用Docker

    Ubuntu 在LXC容器中使用Docker 问题问题原因解决方案结果 问题 参考docker官网指导安装后运行 sudo docker run hello world xff0c 出现如下错误 docker Error response
  • 如何开发和维护一个项目

    准备stage1 沟通 产品逻辑沟通清楚 获取产品文档 交互逻辑沟通清楚 获取设计图 接口功能 数据结构沟通清楚 获取接口文档 这里可能需要三个记录 准备stage2 规划 根据产品流程确定代码执行流程 思考代码组织方式 选择使用什么开发

随机推荐