listview

一、ListView:不同视图中一种显示想的集合,显示表格样式的数据信息
1、视图: 
           在其右上方小箭头点击将视图改为Details;或者右键属性在外观View将其改为Details
2、设置列头:
           在其右上方小箭头点击选择编辑列,然后添加列名;或右键属性-行为-Columns
3、添加行数据 
           在其右上方小箭头点击选择编辑项,然后将属性Text改名,即第一列,添加成员即其它列;或右键属性-行为-Items

二、连接数据库:
1、建立实体类Users、Nation和数据访问类UsersData、NationData
2、调用UsersData类中的Select方法,将全部数据取出来
     List<Student> list = new StudentData().Select();
3、将数据导入到ListView中去

//1、强全部数据取出来
List<Users> list = new UserData().Select();//定义一个泛型集合调用UserData()中的查询方法
int a = 1;//定义变量a,作为序号
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.sexstr);
li.SubItems.Add(u.brithdaystr);
li.SubItems.Add(u.nationname);

listView1.Items.Add(li);
a++;
}

4.窗体加载后自动绑定显示ListView中的数据

办法:数据绑定代码写在窗体的构造函数中

5.给用户展示最终数据(属性扩展)

6.行号

用C#变量循环++来实现

7.数据重复绑定

在绑定之前清空Items集合

listView1.Items.Clear();

8.选中一行数据

外观:FullRowSelect:选择其中一项是否选中整行

        CheckBoxes:复选框

        GridLines:网格线

行为:HideSelection :当控件没有焦点时,是否移除选定项的突出显示

        HeaderStyle:列表头的样式

        HoverSelection :鼠标悬浮在项上选择项,不好用,需停顿一会,通常与CheckBoxes连用 

如何将选中的数据取出来

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

删除 只能一项

private void button3_Click(object sender, EventArgs e)
        {
            int delcount = 0;
            int shengyucount = 0;
            string a = "";
            StudentData std = new StudentData();
            if (listView1.CheckedItems.Count <= 0)
            {
                MessageBox.Show("请至少选择一项进行删除!");
            }
            else 
            {
                delcount = listView1.CheckedItems.Count;
                foreach (ListViewItem li in listView1.CheckedItems)
                {
                    if (li.Checked)
                    {
                        bool ok = new StudentData().Delete(li.SubItems[1].Text);
                        if (ok)
                        {
                            shengyucount++;
                        }
                        else { a += li.SubItems[1].Text + ","; }
                    }
                }
                DBind();
                if (delcount == shengyucount)
                {
                    MessageBox.Show("删除成功");
                }
                else
                {
                    MessageBox.Show("删除失败!要删除" + delcount + "条数据,未删除" + (delcount - shengyucount) + "条数据,未删除的用户名未:" + a + "");
                }
            }
        }

添加:

学号不能为空,不能重复,名字不能为空

private void button1_Click(object sender, EventArgs e)
        {
            Student st = new Student();
            StudentData sdt = new StudentData();
            if (textBox1.Text == "")
            {
                xuehao.Text = "学号不能为空!";
            }
            else
            {
                if (sdt.Select(textBox1.Text.Trim()))
                {
                    xuehao.Text = "学号已存在!";
                }
                else
                {
                    st.Code = textBox1.Text;
                }
            }

            if (textBox2.Text != "")
            {
                st.Name = textBox2.Text;
            }
            else
            {
                xingming.Text = "姓名不能为空!";
            }

            if (radioButton1.Checked)
            {
                st.Sex = true;
            }
            else
            {
                st.Sex = false;
            }

            st.Birthday = dateTimePicker1.Value;
            st.SubjectCode = comboBox1.SelectedValue.ToString();
            bool b=sdt.Insert(st);
            if (b == true)
            {
                MessageBox.Show("添加成功!");
                this.Close();
            }
            else
            {
                MessageBox.Show("添加失败!");
            }
            F1.DBind();
           

        }

原文地址:https://www.cnblogs.com/power8023/p/5907832.html