今天,我学习了公共控件中的ListView的内容。

  首先,在利用ListView布置界面时,有以下三个方面:

  1、视图: 
           在其右上方小箭头点击将视图改为Details;或者右键属性在外观View将其改为Details。
  2、设置列头:
           在其右上方小箭头点击选择编辑列,然后添加列名;或右键属性-行为-Columns。
  3、添加行数据 
           在其右上方小箭头点击选择编辑项,然后将属性Text改名,即第一列,添加成员即其它列;或右键属性-行为-Items。

  在进行数据库的链接时,有五个方面的内容:

  1、窗体加载后自动绑定显示ListView中的数据。

  办法:数据绑定代码写在窗体的构造函数中。

  窗体中的代码:

     public Form1(){InitializeComponent();DataBind();}public void DataBind(){listView1.Items.Clear();//1、将全部数据取出来List<Users> list = new UsersData().Select();int a = 1;//2、将数据导入到ListView中去foreach (Users u in list){ListViewItem li = new ListViewItem();li.Text = a.ToString();li.SubItems.Add(u.UserName);li.SubItems.Add(u.PassWord);li.SubItems.Add(u.NickName);li.SubItems.Add(u.SetStr);li.SubItems.Add(u.BirthdayStr);li.SubItems.Add(u.NationName);listView1.Items.Add(li);a++;}}

  数据访问类UsersData中的代码:

     SqlConnection conn = null;SqlCommand cmd = null;public UsersData(){conn = new SqlConnection("server=.;database=Data0720;user=sa;pwd=123");cmd = conn.CreateCommand();}public List<Users> Select(){List<Users> list = new List<Users>();cmd.CommandText = "select *from Users";conn.Open();SqlDataReader dr = cmd.ExecuteReader();if (dr.HasRows){while (dr.Read()){Users u = new Users(){UserName = dr[0].ToString(),PassWord = dr[1].ToString(),NickName = dr[2].ToString(),Sex = Convert.ToBoolean(dr[3]),Birthday = Convert.ToDateTime(dr[4]),Nation = dr[5].ToString()};list.Add(u);}}conn.Close();return list;}

  2、给用户展示最终用户可以看得懂的数据,如:性别(男/女),生日(2000/01/20)。

  办法:利用属性扩展,再封装一个string类。

  3、在每一条所展示的数据前添加行号。

  办法:用C#变量循环++来实现。

  4、数据重复绑定。(重复点击“查询”按钮,刷新查询结果)

  办法:在绑定之前清空Items集合。

  listView1.Items.Clear();

  5.选中一行数据

  外观:FullRowSelect:选择其中一项是否选中整行

  CheckBoxes:复选框

   GridLines:网格线

  行为:HideSelection :当控件没有焦点时,是否移除选定项的突出显示

  HeaderStyle:列表头的样式

  HoverSelection :鼠标悬浮在项上选择项,不好用,需停顿一会,通常与CheckBoxes连用

  

  重点:

  1、数据如何绑定上去

  2、如何将选中的数据取出来

  (1)一个是FullRowSelect属性为True可以选择整行数据(ListView1.SelectedItems)

  if (listView1.SelectedItems.Count > 1)//选择了多行
  {
    MessageBox.Show("修改只允许选择一行");
  }
  else if (listView1.SelectedItems.Count == 1)
  {
    foreach (ListViewItem li in listView1.SelectedItems)
    {
      if (li.Selected)
      {
        MessageBox.Show(li.SubItems[0].Text + li.SubItems[1].Text + li.SubItems[2].Text + li.SubItems[3].Text + li.SubItems[4].Text + li.SubItems[5].Text);
      }
    }
  }
  else//未选中
  {
    MessageBox.Show("请先选中您要修改的数据");
  }
  (2)另一个是CheckBoxes属性为True时,可以按照复选框来选择整行数据(ListView1.CheckedItems)
  foreach (ListViewItem li in listView1.CheckedItems)
  {
    if (li.Checked)
    {
      MessageBox.Show(li.SubItems[0].Text + li.SubItems[1].Text + li.SubItems[2].Text + li.SubItems[3].Text + li.SubItems[4].Text + li.SubItems[5].Text);
    }
  }

转载于:https://www.cnblogs.com/hongsen3/p/5907724.html

WinForm ListView相关推荐

  1. 陈年佳酿之 - Winform ListView 控件 double click 事件中获取选中的row与column

    背景 最近收到了一个关于以前项目的维护请求,那时的楼主还是刚刚工作的小青年~~~ 项目之前使用的是.net/winform.今天重新打开代码,看着之前在FrameWork2.0下面的代码, 满满的回忆 ...

  2. C# WINFORM ListView用法详解(转)

    源代码下载位置: http://pan.baidu.com/s/1qXrLehe 一.ListView类 1.常用的基本属性: (1)FullRowSelect:设置是否行选择模式.(默认为false ...

  3. winform listview 设置选中项 图片_实战PyQt5: 069-MV框架中的项视图拖放功能

    模型-视图框架完全支持Qt的基本拖放操作,列表.树形和表格部件中的项可以在视图间拖动,数据可以以MIME类型的格式进行导入和导出 Qt提供的标准视图自动支持在视图内部的拖放,其中的项可以被移动以改变显 ...

  4. c# winform listview 删除

    while (this.listView1.SelectedItems.Count > 0)             {                                 this ...

  5. winform listview 动态编辑_霓虹灯:免费动画文字字体– 36个免费动态图形元素

    想要为您的视频带来干净现代的感觉?还是复古,浮华的风格?下载这些功能强大的免费动画文本预设,可立即获得您想要的美感. 如果您看过我们的2019年创意趋势报告,就会知道霓虹灯和复古未来主义风格的美学在所 ...

  6. C# ListView控件显示表格(自适应宽度),添加 Checkbox,删除选择项,选中颜色和鼠标滑过背景变色

    本文转载自:http://www.liangshunet.com/ca/201309/586362553.htm 亮术网 2020-03-07 本网原创 DataGridView控件功能十分强大,显示 ...

  7. aardio listview添加,删除某一行后

    最近小伙伴 敢入手!一脸懵! 删除某行不会 直接上示例 aardio学习群 625494397 需要安装库 import win.ui; import string; import fsys; imp ...

  8. 2021-08-11 WPF控件专题 ListView控件详解

    1.ListView控件介绍 Listbox ComboBox TabControl ItemsControl 条目控件 Winform ListView 5View WPF ListView :用于 ...

  9. android listview 动态删除行,[已解决!]关于listview添加了N行之后,删除某一行后,后面的行号如何动态变化?...

    import win.ui; import string; import fsys; import fsys.file; /*DSG{{*/ var winform = ..win.form( rig ...

最新文章

  1. 【转】 Android快速开发系列 10个常用工具类 -- 不错
  2. vmware 打开主页 打开所有库中的虚拟机
  3. HTML5中的CSS Shader技术
  4. 校门外的树+矩阵旋转
  5. linux收缩java位置,找到linux中当前java的安装位置
  6. 数据eda_关于分类和有序数据的EDA
  7. Fedora 15 快捷操作之新体验
  8. c语言访问oc变量,OC中的方法调用流程
  9. springboot使用JSR303对数据进行校验
  10. 学习,工作,编程必看:130 个相见恨晚的神器网站
  11. 欠拟合和过拟合的一般解决方法
  12. c++ error函数_回调函数地狱
  13. X265源码下载地址
  14. 第一道题目:一个美国人在菜市场上做生意。第一次,8美元买了一只鸡,9美元卖掉了;第二次,10美元买了同样的一只鸡,11美元又卖掉了。
  15. 1,matlab仿真正运动学
  16. word如何修改行间距和段落间距
  17. 30个非常流行的提示信息插件(jQuery Tooltip Plugin)
  18. 【板绘软件】板绘初学者入门用什么软件比较好?都有哪些软件呢?
  19. win10上运行linux程序吗,Win10可以运行 Linux 的图形界面程序了
  20. FilterConfig接口及其使用方法详解

热门文章

  1. C语言中为什么要使用enum
  2. MySQL中变量的定义和变量的赋值使用(转)
  3. C++ primer 14章习题答案
  4. hplaserjet1022老提示打印错误,hp laserjet 1022 在win7上正确的安装步骤
  5. c++ primer 5th 练习11.9自己编写的答案
  6. [BUUCTF-pwn]——axb_2019_brop64
  7. [攻防世界 pwn]——welpwn
  8. C语言二维数组元素的多种表示方法小结
  9. java所有的质因数_Java实现分解任意输入数的质因数算法示例
  10. python列表常用方法_python之 列表常用方法