今天,我学习了公共控件中的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 = ;
//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[].ToString(),
PassWord = dr[].ToString(),
NickName = dr[].ToString(),
Sex = Convert.ToBoolean(dr[]),
Birthday = Convert.ToDateTime(dr[]),
Nation = dr[].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);
    }
  }

WinForm ListView的更多相关文章

  1. winform ListView应用之分组、重绘图标、网格线 (c# .net winform)

    最近在winform应用中需要用到可分组的数据列表功能,DataGridView默认没有提供分组的功能,而OutlookGrid(http://www.codeproject.com/KB/grid/ ...

  2. [转]C# Winform ListView使用

    以下内容均来自网上,个人收集整理,具体出处也难确认了,就没写出处了: 一.基本使用: listView.View = View.Details;//设置视图 listView.SmallImageLi ...

  3. C# Winform ListView使用

    以下内容均来自网上,个人收集整理,具体出处也难确认了,就没写出处了: 一.基本使用: listView.View = View.Details;//设置视图 listView.SmallImageLi ...

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

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

  5. winform listview用法

    资源收集 C#winform中ListView的使用 C# WinForm开发系列 - ListBox/ListView/Panel(介绍了一些listview的高级用法) 直接上代码 示例一: th ...

  6. WinForm ListView不分页加载大量数据

    WinForm的ListView在加载大量数据时会出现闪烁的问题,同时数据加载很慢.如果你的列表中有超过千条的数据且不做特殊处理还是用普通的ListView.Items.Add(),估计你的用户得抱怨 ...

  7. Winform listview控件、 容器控件

    1.常用的基本属性: (1)FullRowSelect:设置是否行选择模式.(默认为false) 提示:只有在Details视图该属性才有意义. (2) GridLines:设置行和列之间是否显示网格 ...

  8. winform listview控件、容器控件

    ListVies控件主要用于展示数据 常用属性: FullRowSelect:设置是否行选择模式.(默认为false) (开启之后一下选中一行数据) GridLines:设置行和列之间是否显示网格线. ...

  9. winform listview控件

    ListView控件 1.常用的基本属性: (1)FullRowSelect:设置是否行选择模式.(默认为false) 提示:只有在Details视图该属性才有意义. (2) GridLines:设置 ...

  10. Winform ListView 元素拖动

    //ListView 属性 /* AllowDrop : True */ ListView objLVDrag; private void listView_DragDrop(object sende ...

随机推荐

  1. Make Things Move -- Javascript html5版(三)三角函数形式的动画

    角度制和弧度制 生活中通常是用角度度来理解的,代码里都是用弧度制来计算. 角度转弧度:DEG_TO_RAD = Math.PI / 180 弧度装角度:RAD_TO_DEG = 180 / Math. ...

  2. zabbix实现对磁盘动态监控

    zabbix实现对磁盘动态监控 前言 zabbix一直是小规模互联网公司服务器性能监控首选,首先是免费,其次,有专门的公司和社区开发维护,使其稳定性和功能都在不断地增强和完善.zabbix拥有详细的U ...

  3. 解决MSSQL 2008不能用IP登录的问题

        解决MSSQL 2008不能用IP登录的问题   前提准备:mssql 2008已安装好了一个实例(我按默认情况下安装的实例是:SQLEXPRESS),并安装了SQL Server Manag ...

  4. WPF制作的小型笔记本

    WPF制作的小型笔记本-仿有道云笔记 楼主所在的公司不允许下载外部资源, 不允许私自安装应用程序, 平时记录东西都是用记事本,时间久了很难找到以前记的东西. 平时在家都用有道笔记, 因此就模仿着做了一 ...

  5. 原生javascript-图片按钮切换

    原生javascript-图片按钮切换 即上次被分配写原生JS相册弹窗后,这次又接到了写原生JS,图片按钮切换,真激情: 个人在线实例:http://www.lgyweb.com/picSwitch/ ...

  6. 基于BrokerPattern服务器框架

    基于BrokerPattern服务器框架 RedRabbit 经典网游服务器架构 该图省略了专门用途的dbserver.guildserver等用于专门功能的server,该架构的优点有: l Log ...

  7. js 获取页面内链接

    今天有同学问如何用 JS 正则表达式获取一段文本中的超链接,并对超链接进行处理,想了几分钟,写了下面的代码: var re = /https?:\/\/[\w\.:~\-\d\/]+(?:\?[\w\ ...

  8. MongoDB安装心得

    本人纯前端一枚,对于数据库安装各种纠结,出了不少错误,一一列出,方便遇到同样问题的人给以参考,也加深一下自己印象. 故事开始了...Node.js在前端界比较火,由于我也是小小前端,跟随大潮流开始步入 ...

  9. [每日一题] OCP1z0-047 :2013-07-16 主键与唯一索引

    主键包括非空和唯一约束,它会自动创建唯一索引(注:唯一约束也会自动创建唯一索引),测试如下: 1. 创建一个表products gyj@OCM> Create table products( 2 ...

  10. 排序算法用C++的基本算法实现十个数排序

    本文个人在青岛喝咖啡的时候突然想到的...近期就有想写几篇关于排序算法的文章,所以回家到之后就奋笔疾书的写出来发布了 冒泡排序法 道理: 它重复地访问过要排序的数列,一次比较两个元素,如果他们的顺序错 ...