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. [转]Eclipse Java注释模板设置详解

    原文链接:http://blog.csdn.net/ahhsxy/archive/2009/09/11/4542682.aspx 设置注释模板的入口: Window->Preference-&g ...

  2. NVL 和NVL2函数

    NVL 和NVL2函数 NVL函数: nvl(exp1,exp2) -->判断exp1是否是null,如果exp1不是则返回exp1的值,如果exp1为null则返回exp2 nvl2函数: n ...

  3. String.Format数字格式化参考

    String.Format数字格式化输出 {0:N2} {0:D2} {0:C2} (转) 数字 {0:N2} 12.36 数字 {0:N0} 13 货币 {0:c2} $12.36 货币 {0:c4 ...

  4. mybatis的xml中特殊转义字符和模糊查询like的写法

    做个备忘: xml特殊符号转义写法 <          < >          > <>   <> &      & &ap ...

  5. SLC、MLC和TLC三者的区别

    SLC=Single-LevelCell,即1bit/cell,速度快寿命长,价格超贵(约MLC3倍以上的价格),约10万次擦写寿命 MLC=Multi-LevelCell,即2bit/cell,速度 ...

  6. UISegmentedControl(转)

    初始化UISegmentedControl NSArray *arr = [[NSArray alloc]initWithObjects:@"轻拍",@"长按" ...

  7. 视频处理控件TVideoGrabber如何重新编码视频

    TVideoGrabber中可以对音频.视频剪辑进行重新编码剪辑,多的朋友知道这个功能更点,但是具体操作上还是不是很熟悉,这里总结一下,主要步骤如下: 1.通过指定开始和停止的时间,可以简单的剪辑视频 ...

  8. git-gui

    使用Git.Git GUI和TortoiseGit http://zengrong.net/post/1722.htm 但云桌面不能安装,则TortoiseGit不能使用! 只能想到用totalcmd ...

  9. overflow的劲爆知识点

    1.属性 visible(默认) hidden(此处是隐藏不是裁剪) scroll(滚动条) auto(智能路线 当超出范围时则出现滚动条) inherit 不常用  存在兼容性问题 2.进入CSS3 ...

  10. oracle sql获取随机数

    SQL> select round(dbms_random.value(10000,99999)) num from dual;