• 公共控件Listview


    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; }
            }
    
        }
    }
    View Code
    //数据访问类
    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[0].ToString();
                        a.Password = ss[1].ToString();
                        a.NickName = ss[2].ToString();
                        a.Sex = Convert.ToBoolean(ss[3]);
                        a.Birthday = Convert.ToDateTime(ss[4]);
                        a.Nation = ss[5].ToString();
                        u.Add(a);         
                    }
                        
                }
    
                cnn.Close();
    
                return u;
            }
    
    
    
    
        }
    }
    View Code
    //点击事件
    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)
            {
    
            }
        }
    }
    View Code

    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[1].Text);
                    }
                   
                }

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

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

    完!

  • 相关阅读:
    稀疏自编码器一览表
    ZOJ 3886 Nico Number(筛素数+Love(线)Live(段)树)
    K好数(DP)
    【BZOJ4025】二分图
    又一次认识java(七) ---- final keyword
    二分查找
    从朴素贝叶斯分类器到贝叶斯网络(下)
    最近感到深深的绝望,感觉自己太菜了
    leetcode No.19 删除链表的倒数第N个节点 (python3实现)
    leetcode No.94 二叉树的中序遍历 (python3实现)
  • 原文地址:https://www.cnblogs.com/wwz-wwz/p/5906615.html
Copyright © 2020-2023  润新知