ListView属性中,Items是行的总集合,Items集合中的每一个是一行,Items集合里面有ListViewItem集合,这个集合实例化:ListViewItem li=new ListViewItem(); li.text是第一行的第一列,SubItems集合是li里面的集合,li.SubItems子集是每一行的、除了第一列的其他列。

1、视图

(1)点击图像上面的“小三角”,将视图设置为Details。--外观-view可更改。

(2)表列:点击“设置列”,“添加(A)”,出现columnHeader1.....这是表的列,设置Text,此为列名。------属性里面的行为-Colums

(3)表行:点击上面“数据”的“Users”结合,点击"添加",添加的项为表的剩余的列。--属性里面的行为-Items

(4)数据库连接:

以以前Users表为例,建立App_Code文件夹,添加实体Student类和数据访问类UsersData。

数据访问类建立查询Student表的全部信息的方法:Pulic    list<Users> list select(){代码}

在form1的表的Button设置点击事件:第一:先将全部数据取出来 List<Users> list=new UsersData().Select();

第二:将数据导入到ListView中去。

 foreach (Users a in u)
{
ListViewItem li = new ListViewItem();
li.Text = a.UserName;
li.SubItems.Add(a.Password);
li.SubItems.Add(a.NickName);
li.SubItems.Add(a.Sex?"男":"女");
li.SubItems.Add(a.Birthday.ToString("yyyy年MM月dd日"));
li.SubItems.Add(a.Nation);
listView1.Items.Add(li); }

详细总代码如下:

//实体类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace WindowsFormsApplication33.App_Code
{
public class Users
{
private string _UserName;
public string UserName
{
get { return _UserName; }
set { _UserName = value; } }
private string _Password;
public string Password
{
get { return _Password; }
set { _Password = value; }
}
private string _NickName;
public string NickName
{
get { return _NickName; }
set { _NickName = value; }
}
private bool _Sex;
public bool Sex
{
get { return _Sex; }
set { _Sex = value; } }
private DateTime _Birthday;
public DateTime Birthday
{
get { return _Birthday; }
set { _Birthday = value; }
}
private string _Nation;
public string Nation
{
get { return _Nation; }
set { _Nation = value; }
} }
}
//数据访问类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient; namespace WindowsFormsApplication33.App_Code
{
public class UserData
{ SqlConnection cnn = null;
SqlCommand cmd = null;
public UserData()
{
cnn = new SqlConnection("server=.;database=ren;user=sa;pwd=123");
cmd = cnn.CreateCommand();
}
public List<Users> select()//查询全部信息,返回集合
{
List<Users> u = new List<Users>();
cmd.CommandText = "select * from Users";
cnn.Open();
SqlDataReader ss = cmd.ExecuteReader();
if (ss.HasRows)
{ while (ss.Read())
{
Users a = new Users();
a.UserName = ss[].ToString();
a.Password = ss[].ToString();
a.NickName = ss[].ToString();
a.Sex = Convert.ToBoolean(ss[]);
a.Birthday = Convert.ToDateTime(ss[]);
a.Nation = ss[].ToString();
u.Add(a);
} } cnn.Close(); return u;
} }
}
//点击事件
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;
using WindowsFormsApplication33.App_Code; namespace WindowsFormsApplication33
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{ } private void button1_Click(object sender, EventArgs e)
{
List<Users> u = new UserData().select();//获得集合 foreach (Users a in u)
{
ListViewItem li = new ListViewItem();
li.Text = a.UserName;
li.SubItems.Add(a.Password);
li.SubItems.Add(a.NickName);
li.SubItems.Add(a.Sex?"男":"女");
li.SubItems.Add(a.Birthday.ToString("yyyy年MM月dd日"));
li.SubItems.Add(a.Nation);
listView1.Items.Add(li); } } private void Form1_Load(object sender, EventArgs e)
{ }
}
}

2、问题:怎么才能打开窗体,自动在窗体中显示数据库的内容

办法:数据查询显示代码的方法写在窗体的构造函数中。

3、怎么给用户展示最终数据

办法:数据库的属性扩展。

4、在窗体中怎么显示行号

办法:在函数外int i=1;在函数内循环时设置第一列的i++;

5、选中一行数据

外观 - FullRowSelect:选择其中一项,是否选中整行
          CheckBoxes:复选框
           GridLines:网格线
行为 - HideSelection :当控件没有焦点时,是否移除选定项的突出显示
           HeaderStyle:列表头的样式,是否能被选中
           HoverSelection :鼠标悬浮在项上选择项,不好用,需停顿一会,通常与CheckBoxes连用

如何将选中的数据取出来
一个是FullRowSelect属性为True可以选择整行数据
ListView1.SelectedItems

 foreach (ListViewItem li in listView1.SelectedItems)
{
if (li.Selected)
{
MessageBox.Show(li.SubItems[].Text);
} }

另一个是CheckBoxes属性为True时,可以按照复选框来选择整行数据
ListView1.CheckedItems

 foreach (ListViewItem li in listView1.SelectedItems)
{
if (li.Checked)
{
MessageBox.Show(li.SubItems[].Text);
} }

完!

公共控件Listview的更多相关文章

  1. WinFrom 公共控件 Listview 的使用

    Listview绑定数据库数据展示与操作使用  1.拖一个Listview控件到项目中先将视图改为Details 2.编辑列 设置列头  添加columnHeader成员 Text 是显示的名称 3. ...

  2. winform 公共控件 ListView

    //数据显示,刷新 public void F5() { listView1.Items.Clear(); List<Students> Stu = new StudentsData(). ...

  3. WinForm 公共控件

    一.窗体属性: 1.AcceptButton - 窗体的“接受”按钮.如果设置该属性,每次用户按“Enter”键都相当于“单击”了该按钮. 需要设置哪个键,就在后面选择. 2.CancelButton ...

  4. WinForm公共控件

    公共控件:1.Button:按钮 用户点击时触发事件 行为属性 Enabled -是否启用 Visible -是否隐藏2.CheckBox .CheckListBox - 复选框 复选框组 3.Com ...

  5. winform(公共控件)

    一.客户端设计思路 1.理顺设计思路,架构框架 2.设计界面 3.编写后台代码 4.数据库访问 二.公共控件 1.Button(按钮): ⑴ Enabled :确定是否启用控件 ⑵ Visible:确 ...

  6. 12-22C#公共控件(基本功能)

    在C#窗体中,公共控件的基本功能: 1.获取.设置控件的参数值: 2.事件(其实是一种特殊的方法和属性,当被其他外力触发它,就会发生,类似数据库的触发器.) 下面是基本的公共控件: 1.复选框 1)设 ...

  7. (1)C#工具箱-公共控件1

    公共控件 InitializeComponent() 先说下InitializeComponent()这个方法,它在form1.cs里调用这个方法对控件进行初始化,控件的方法要在这个方法之后,否则会因 ...

  8. [Android Pro] android控件ListView顶部或者底部也显示分割线

    reference to  :  http://blog.csdn.net/lovexieyuan520/article/details/50846569 在默认的Android控件ListView在 ...

  9. WinForm 窗体基本属性、公共控件

    一.WinForm:客户端程序制作 - C/S (B/S:服务器端) 它是基于.NET Framework框架上运行,不是必须在windows系统上才能运行---------------------- ...

随机推荐

  1. list和set的区别

    list和set的区别 相同点:list,set都是继承自collection接口 不同点: a.list-->元素有放入顺序,元素可重复  set-->元素无放入顺序,元素不可重复 b. ...

  2. HDU 4888 Redraw Beautiful Drawings(最大流+判最大流网络是否唯一)

    Problem Description Alice and Bob are playing together. Alice is crazy about art and she has visited ...

  3. HDU 4897 Little Devil I(树链剖分)(2014 Multi-University Training Contest 4)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4897 Problem Description There is an old country and ...

  4. Cookie—的使用

    编写 Cookie 浏览器负责管理用户系统上的 Cookie.Cookie 通过 HttpResponse 对象发送到浏览器,该对象公开称为 Cookies 的集合. 可以将 HttpResponse ...

  5. paper 86:行人检测资源(上)综述文献【转载,以后使用】

    行人检测具有极其广泛的应用:智能辅助驾驶,智能监控,行人分析以及智能机器人等领域.从2005年以来行人检测进入了一个快速的发展阶段,但是也存在很多问题还有待解决,主要还是在性能和速度方面还不能达到一个 ...

  6. 夺命雷公狗---Thinkphp----6之管理员的增删改查之-未验证

    首先我们创建多一个控制器UserController.class.php,主要用于管理员的增删改查操作: 代码如下所示: <?php namespace Admin\Controller; us ...

  7. yii2.0分页

    本实例是对商品列表进行分页 1.Controller中,商品列表的方法actionList 引用分页类 actionList中: $goods_info=Goods::find()->joinW ...

  8. yii2多语言

    1.页面视图(我放在了布局文件main.php中): <a href="javascript:;" onclick="changeLanguage('zh-CN') ...

  9. 小结 javascript中的类型检测

    先吐槽一下博客园的编辑器,太不好用了,一旦粘贴个表格进来就会卡死,每次都要用html编辑器写,不爽! 关于javascript的类型检测,早在实习的时候就应该总结,一直拖到现在,当时因为这个问题还出了 ...

  10. 在路由器 RT-AC68U 安装迅雷远程过程

    赶紧记录下,省得时间久了忘记.  步骤如下: 1.下载迅雷远程的 Linux 组件: http://pan.baidu.com/s/1jGqYPnw . 解压缩. 2.ssh 登录au68u 路由器 ...