ListView是用于显示数据的,先在窗体中拉一个lisview控件,还有一些新增、修改、删除、查询按钮和文本框,控件名称为listview,按钮为btnInsert,btnUpate,btnDeleteOne,btnDelete,btnSelect,文本框的名称为txtName,txtSex,txtPhone,txtAddress,设计如下图所示:

写完这些后,先设置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 TestGame
{
    public partial class ListViewForm : Form
    {
        public ListViewForm()
        {
            InitializeComponent();
        }
        /// <summary>
        /// 窗体加载时调用初始化的Listview方法
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ListViewForm_Load(object sender, EventArgs e)
        {
            InitListView(this.listView);
        }
        /// <summary>
        /// 当点击新增时调用的方法
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnInsert_Click(object sender, EventArgs e)
        {
            InsertListView(this.listView);
                     
        }
        /// <summary>
        /// 当点击修改时调用的方法
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnUpdate_Click(object sender, EventArgs e)
        {
            UpdateListView(this.listView);
        }
        /// <summary>
        /// 新增方法
        /// </summary>
        /// <param name="lv"></param>
        /// <returns></returns>
        public ListView InsertListView(ListView lv) {
            //获取文本框中的值
            string name = this.txtName.Text;
            string sex = this.txtSex.Text;
            string phone = this.txtPhone.Text;
            string address = this.txtAddress.Text;
            //创建行对象
            ListViewItem li = new ListViewItem(name);
            //添加同一行的数据
            li.SubItems.Add(sex);
            li.SubItems.Add(phone);
            li.SubItems.Add(address);
            //将行对象绑定在listview对象中
            lv.Items.Add(li);

    MessageBox.Show("新增数据成功!");
            return lv;
        }
       
        /// <summary>
        /// 初始化ListView的方法
        /// </summary>
        /// <param name="lv"></param>
        public void InitListView(ListView lv) {
            //添加列名
            ColumnHeader c1 = new ColumnHeader();
            c1.Width = 100;
            c1.Text = "姓名";
            ColumnHeader c2 = new ColumnHeader();
            c2.Width = 100;
            c2.Text = "性别";
            ColumnHeader c3 = new ColumnHeader();
            c3.Width = 100;
            c3.Text = "电话";
            //设置属性
            lv.GridLines = true;  //显示网格线
            lv.FullRowSelect = true;  //显示全行
            lv.MultiSelect = false;  //设置只能单选
            lv.View = View.Details;  //设置显示模式为详细
            lv.HoverSelection = true;  //当鼠标停留数秒后自动选择
            //把列名添加到listview中
            lv.Columns.Add(c1);
            lv.Columns.Add(c2);
            lv.Columns.Add(c3);
            lv.Columns.Add("籍贯", 100);  //相当于上面的添加列名的步骤
        }
        
        /// <summary>
        /// 修改的方法
        /// </summary>
        /// <param name="lv"></param>
        /// <returns></returns>
        public ListView UpdateListView(ListView lv){
            if (lv.SelectedItems.Count > 0) {

      //把修改后的文本框内容添加到listview中
                lv.SelectedItems[0].SubItems[0].Text = this.txtName.Text;
                lv.SelectedItems[0].SubItems[1].Text = this.txtSex.Text;
                lv.SelectedItems[0].SubItems[2].Text = this.txtPhone.Text;
                lv.SelectedItems[0].SubItems[3].Text = this.txtAddress.Text;
                MessageBox.Show("修改数据成功!");
            }
            return lv;
        }
       
        /// <summary>
        /// 当listview选中状态改变时调用的方法
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void listView_SelectedIndexChanged(object sender, EventArgs e)
        {

    //当有选择行的数据时
            if (this.listView.SelectedItems.Count > 0) {

      //把选择的信息显示在相应的文本框中
                this.txtName.Text = this.listView.SelectedItems[0].SubItems[0].Text;
                this.txtSex.Text = this.listView.SelectedItems[0].SubItems[1].Text;
                this.txtPhone.Text = this.listView.SelectedItems[0].SubItems[2].Text;
                this.txtAddress.Text = this.listView.SelectedItems[0].SubItems[3].Text;
            }
        }
       
        /// <summary>
        /// 移除选中行的方法
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnDeleteOne_Click(object sender, EventArgs e)
        {
            if (this.listView.SelectedItems.Count > 0) {
                //移除整一行
                this.listView.SelectedItems[0].Remove();
            }
        }
       
        /// <summary>
        /// 移除所有行的方法
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnDeleteAll_Click(object sender, EventArgs e)
        {    
                //清空整个listview中的行
                this.listView.Items.Clear();
        }

private void btnSelect_Click(object sender, EventArgs e)
        {
            SelectListView(this.listView);
        }

public void SelectListView(ListView lv) {
            //列表有数据
            if (lv.Items.Count > 0)
            {
                foreach (ListViewItem li in lv.Items)
                {
                    if (li.SubItems[0].Text == this.txtExitName.Text)
                    {
                        MessageBox.Show("存在该名称");
                        return;
                    }
                }
                MessageBox.Show("没有找到该姓名");
            }
            else {
                MessageBox.Show("未输入列表数据");
            }
        }
    }
}

最后运行效果是这样的,这是新增数据时的效果

这是修改数据后的效果:

这是查询是否存在这个名字的效果:

删除选中行和删除全部就不显示出来了。

C#中ListView的简单使用方法的更多相关文章

  1. C#中ListView易错的方法

    现在有一个ListView(lv1),有2列. ListViewItem lvi = new ListViewItem(); lvi.Text = "语文"; lvi.SubIte ...

  2. Android中ListView的简单使用

    动态添加单行列表: 首先前提是你的布局文件里有一个ListView 单行列表的添加只需要一个list集合即可,使用ArrayAdapter数组适配器绑定更新就行了 首先声明一个ArrayAdapter ...

  3. ABAP中正则表达式的简单使用方法 (转老白BLOG)

    在一个论坛上面看到有人在问正则表达式的问题,特举例简单说明一下.另外,REPLACE也支持REGEX关键字.最后:只能是ECC6或者更高版本才可以(ABAP supports POSIX regula ...

  4. Android中ListView的几种常见的优化方法

    Android中的ListView应该算是布局中几种最常用的组件之一了,使用也十分方便,下面将介绍ListView几种比较常见的优化方法: 首先我们给出一个没有任何优化的Listview的Adapte ...

  5. PhotoShop中画圆角矩形最简单方法(图文并茂)!

    PhotoShop中画圆角矩形最简单方法(图文并茂)! 1. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZHhubjUyMA==/font/5a6L5L ...

  6. LaTeX中表格多行显示的最简单设置方法

    这事实上是一个非常easy的问题,可是这两天发现我之前的解决方式太麻烦了.简介一下这样的最简单的方法: 之前设置多行显示的时候,用类似于以下这样的方法进行多行显示: \begin{table} \ne ...

  7. C#中缓存的简单方法及使用Sql设置缓存依赖项

    概述 使用Cache高速缓存可以提高数据的读取速度,减少服务器与客户端之间的数据交互.因为Cache一经创建就会占用服务器上的资源,所以Cache并不是越多越好,一般用于数据较固定,使用较频繁的地方. ...

  8. linux中内存泄漏的检測(一)最简单的方法

    什么是内存泄漏 内存泄漏是指程序动态申请的内存在使用完后没有释放,导致这段内存不能被操作系统回收再利用. 比如这段程序,申请了4个字节的空间但没有释放,有4个字节的内存泄漏. #include < ...

  9. 最简单的方法是使用标准的 Linux GUI 程序之一: i-nex 收集硬件信息,并且类似于 Windows 下流行的 CPU-Z 的显示。 HardInfo 显示硬件具体信息,甚至包括一组八个的流行的性能基准程序,你可以用它们评估你的系统性能。 KInfoCenter 和 Lshw 也能够显示硬件的详细信息,并且可以从许多软件仓库中获取。

    最简单的方法是使用标准的 Linux GUI 程序之一: i-nex 收集硬件信息,并且类似于 Windows 下流行的 CPU-Z 的显示. HardInfo 显示硬件具体信息,甚至包括一组八个的流 ...

随机推荐

  1. SQL Server如何启用xp_cmdshell组件

    [错误描述]: SQL Server阻止了对组件‘xp_cmdshell’的过程‘sys.xp_cmdshell’的访问.因为此组件已作为此服务嚣安全配置的一部分而被关闭.系统管理员可以通过使用sp_ ...

  2. ch4 MySQL 安全管理

    第 4 章 MySQL 安全管理 前言 对于任何一个企业来说,其数据库系统中所保存数据的安全性无疑是非常重要的,尤其是公司的有些商业数据,可能数据就是公司的根本,失去了数据的安全性,可能就是失去了公司 ...

  3. 解决ubuntu解压zip文件名乱码的问题

    1. 安装7-zip 和 convmv : 命令: sudo apt-get install convmv p7zip-full 2. 解压zip文件: 命令:LANG=C 7z e yourZIPf ...

  4. JS - Object and Property的删除用法

    在JS中,Object和Property的删除用法: var myObject = {name:'jimmy', age:12, height:123} delete myObject["j ...

  5. wait、notify、notifyAll的阻塞和恢复

    前言:昨天尝试用Java自行实现生产者消费者问题(Producer-Consumer Problem),在coding时,使用到了Condition的await和signalAll方法,然后顺便想起了 ...

  6. python-根据左右值获取城市区域编码

    def get_adcode(city): """ 根据城市获取区域编码 :param city: :return: """ db = db ...

  7. 使用PowerDesigner导出Word/HTML的一些配置

    目标:根据物理视图导出代码和列清单(包括字段.类型.注释).由于默认导出的要素太多,大多不是自己想要的,这里简单说下导出目标的一些配置,留下来备用. 其中,Title中的图和Table表格中的代码预览 ...

  8. 【Android】与服务器实现JSON数据通信

    一.前言 作为一名移动端开发人员,具备一定的服务端开发能力也是非常必要的,本篇博客讲述如何在Android和服务器之间实现JSON数据通信交互,博客内容基于另外一篇博客:[Web]Eclipse + ...

  9. Java 停止一个 Thread

    boolean   flag=true;         public   void   run(){             while(flag){                     ... ...

  10. SNF开发平台WinForm之六-上传下载组件使用-SNF快速开发平台3.3-Spring.Net.Framework

    6.1运行效果: 6.2开发实现: 1.先在要使用的项目进行引用,SNF.WinForm.Attachments.dll文件. 2.在工具箱内新建选项卡->选择项,浏览找到文件SNF.WinFo ...