winform 公共控件 ListView

//数据显示,刷新
        public void F5()
        {
            listView1.Items.Clear();
            List<Students> Stu = new StudentsData().SeletAll(F1.textBox1.Text);
            foreach (Students s in Stu)
            {
                ListViewItem li = new ListViewItem();
                li.Text = s.Ids.ToString();
                li.SubItems.Add(s.Code);
                li.SubItems.Add(s.Name);
                li.SubItems.Add(s.Sexdd);
                li.SubItems.Add(s.Age.ToString());
                li.SubItems.Add(s.Birthday.ToString("yyyy年MM月dd日"));
                li.SubItems.Add(s.Nationna);
                li.SubItems.Add(s.ClassNa);
                li.SubItems.Add(s.Score.ToString());
                listView1.Items.Add(li);
            }

        }

ListView控件是一个winform自带的表格型的应用数据展示控件

好处:是功能比较完善,不需要再自己设置

缺点:不好的地方就是不能设置控件中单元格的大小,字体变大之后超出部分就会隐藏,不能直接输入内容,

要将表中的数据展示出来,需要做到以下几步:

1.先设置好ListView的列名,确定好要展示的的数据有几列

(1)如何设置列名:

点击行为属性Columns,可以设置要设置的列名(text),可以设置很多属性,基本和其他控件一致,如图:

2.查询要展示的表的内容,把这个写成一个方法,方便别的Form调用

//查询所有学生信息
        public List<Students> SeletAll(string a)
        {
            List<Students> Stu = new List<Students>();
            cmd.CommandText = "select *from Students where Adm=@a order by Ids asc";
            cmd.Parameters.Clear();
            cmd.Parameters.AddWithValue("@a", a);
            conn.Open();
            SqlDataReader dr = cmd.ExecuteReader();
            if (dr.HasRows)
            {
                while (dr.Read())
                {
                    Students s = new Students();
                    s.Ids = Convert.ToInt32(dr["Ids"]);
                    s.Code = dr["Code"].ToString();
                    s.Name = dr["Name"].ToString();
                    s.Sex = Convert.ToBoolean(dr["Sex"]);
                    s.Nation = dr["Nation"].ToString();
                    s.Birthday = Convert.ToDateTime(dr["Birthday"]);
                    s.Class = dr["Class"].ToString();
                    s.Score = Convert.ToInt32(dr["Score"]);
                    Stu.Add(s);
                }
            }
            conn.Close();
            return Stu;
        }

3.将数据关联起来

 这个写成了一个方法,方便在每次重载时调用,并能保证数据传递后调用刷新的方法

//数据显示,刷新
        public void F5()
        {
            listView1.Items.Clear();
            List<Students> Stu = new StudentsData().SeletAll(F1.textBox1.Text);
            foreach (Students s in Stu)
            {
                ListViewItem li = new ListViewItem();
                li.Text = s.Ids.ToString();
                li.SubItems.Add(s.Code);
                li.SubItems.Add(s.Name);
                li.SubItems.Add(s.Sexdd);
                li.SubItems.Add(s.Age.ToString());
                li.SubItems.Add(s.Birthday.ToString("yyyy年MM月dd日"));
                li.SubItems.Add(s.Nationna);
                li.SubItems.Add(s.ClassNa);
                li.SubItems.Add(s.Score.ToString());
                listView1.Items.Add(li);
            }

        }

4.获取选中数据的各种操作

(1)一次删除多个信息

if (listView1.CheckedItems.Count <= 0)
            {
                MessageBox.Show("请先选中学生信息!");
            }
            else
            {
                int count = 0;
                int Nxx = listView1.CheckedItems.Count;
                List<int> Lt = new List<int>();
                foreach (ListViewItem li in listView1.CheckedItems)
                {
                    Lt.Add(Convert.ToInt32(li.Text));
                }
                for (int cxx = 0; cxx < Nxx; cxx++)
                {
                    if (new StudentsData().Delete(Lt[cxx], F1.textBox1.Text))
                    {
                        count++;
                    }
                }
                F5();
                MessageBox.Show("学生信息删除成功,本次共删除" + count + "名学生.");
            }

 

posted @ 2017-05-17 18:29  超级芒果  阅读(703)  评论(0编辑  收藏  举报