WinForm ListView
今天,我学习了公共控件中的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的更多相关文章
- winform ListView应用之分组、重绘图标、网格线 (c# .net winform)
最近在winform应用中需要用到可分组的数据列表功能,DataGridView默认没有提供分组的功能,而OutlookGrid(http://www.codeproject.com/KB/grid/ ...
- [转]C# Winform ListView使用
以下内容均来自网上,个人收集整理,具体出处也难确认了,就没写出处了: 一.基本使用: listView.View = View.Details;//设置视图 listView.SmallImageLi ...
- C# Winform ListView使用
以下内容均来自网上,个人收集整理,具体出处也难确认了,就没写出处了: 一.基本使用: listView.View = View.Details;//设置视图 listView.SmallImageLi ...
- 陈年佳酿之 - Winform ListView 控件 double click 事件中获取选中的row与column
背景 最近收到了一个关于以前项目的维护请求,那时的楼主还是刚刚工作的小青年~~~ 项目之前使用的是.net/winform.今天重新打开代码,看着之前在FrameWork2.0下面的代码, 满满的回忆 ...
- winform listview用法
资源收集 C#winform中ListView的使用 C# WinForm开发系列 - ListBox/ListView/Panel(介绍了一些listview的高级用法) 直接上代码 示例一: th ...
- WinForm ListView不分页加载大量数据
WinForm的ListView在加载大量数据时会出现闪烁的问题,同时数据加载很慢.如果你的列表中有超过千条的数据且不做特殊处理还是用普通的ListView.Items.Add(),估计你的用户得抱怨 ...
- Winform listview控件、 容器控件
1.常用的基本属性: (1)FullRowSelect:设置是否行选择模式.(默认为false) 提示:只有在Details视图该属性才有意义. (2) GridLines:设置行和列之间是否显示网格 ...
- winform listview控件、容器控件
ListVies控件主要用于展示数据 常用属性: FullRowSelect:设置是否行选择模式.(默认为false) (开启之后一下选中一行数据) GridLines:设置行和列之间是否显示网格线. ...
- winform listview控件
ListView控件 1.常用的基本属性: (1)FullRowSelect:设置是否行选择模式.(默认为false) 提示:只有在Details视图该属性才有意义. (2) GridLines:设置 ...
- Winform ListView 元素拖动
//ListView 属性 /* AllowDrop : True */ ListView objLVDrag; private void listView_DragDrop(object sende ...
随机推荐
- 【详细贴】Ubuntu Linode搭建海外策略路由VPN IPSec+L2TP(一)
对于码农来说,Google上搜索,stackoverflow上提问,twitter上交流,这样的国际化开放平台才是码农成长的空间.但是,目前遇到的一些现实的困难,无可避免的带来一些麻烦,不过这难不倒我 ...
- 在OpenStack虚拟机实例中创建swap分区的一种方法
测试组里一个同学负责MapR的搭建,MapR文档中建议每个节点上至少有24GB的swap分区,不知道MapR为啥会有这种反人类的建议……swap无非就是一块顺序读写的磁盘空间,莫非省着内存不用,用sw ...
- 应聘linux/ARM嵌入式开发岗位
**************************************************************** 因为发在中华英才和智联招聘没有人采我所以我 在这里发布我的个人简历希望 ...
- ajax实现分页
使用ajax分页原理:第一步:做一个表格 第二步:封装两个方法.第三步:新建个负责显示页面.第四步:做一个纯PHP处理页面处理要显示页的所有数据 首先使用一张数据比较多的数据库中的表格: 首页面加载后 ...
- 怎样清除SWAP里的文件
在vim 编辑一个文件时断了网,文件就留在SWAP里,但我再vim这个文件保存后,再打开时又提示SWAP里有这文件了,此时swapoff -a后再ls -al查看,把文件所在目录里*.swp结尾的文件 ...
- C语言之switch
一 switch的语法 switch(表达式){ case 常量表达式1: 代码块1 break; case 常量表达式2: 代码块2 break; case 常量表达式3: 代码块3 break; ...
- hash实现锚点平滑滚动定位
一.科普时间 hash hash 属性是一个可读可写的字符串,该字符串是 URL 的锚部分(从 # 号开始的部分). location.hash=anchorname. 锚点 锚点是网页制作中超级链接 ...
- jQuery+HTML5声音提示
WEB应用中,有时需要播放特定的声音,比如有新消息或者在线聊天消息声音提示,以前我们通过flash实现,今天我们将使用jQuery和HTML5结合示例来实现如何把声音提示带入WEB应用中. 在本例中, ...
- asp.net小技巧:保留password模式文本框textbox内的数据不丢失。
在asp.net 2.0环境下,使用textbox,提交到服务器再传回,如果textbox是password模式的,那么textbox内的密码(星号.圆点),就没有了! 一个可行的做法是 : prot ...
- OSI模型第四层传输层--TCP协议
1.传输层2个协议tcp和udp 2.tcp的可靠性(挂号信). 面向链接的:类似寄挂号信,对方收到了并且能够确认.所以也是可靠的传输. 最大报文传输:两端可以协商传输报文大小.(协商一个报文的大小) ...