zoukankan      html  css  js  c++  java
  • C#中ListView的简单使用方法

    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("未输入列表数据");
                }
            }
        }
    }

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

    这是修改数据后的效果:

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

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

  • 相关阅读:
    git 提示error setting certificate verify locations 解决方案
    检查性异常和非检查性异常
    Intellij IDEA 代码格式化/保存时自动格式化
    IntelliJ IDEA 如何设置类头注释和方法注释
    IntelliJ IDEA 创建 Java包
    python列表的增删改查用法
    我的第一篇博客
    Python全局变量和局部变量相关知识点
    学生管理系统(改进版)
    Python---函数的相关知识点总结一:
  • 原文地址:https://www.cnblogs.com/xielong/p/4692456.html
Copyright © 2011-2022 走看看