问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c# winform中listview的item点击事件

发布网友 发布时间:2022-04-09 09:50

我来回答

3个回答

懂视网 时间:2022-04-09 14:12

StudentData().Select();


3.将数据导入到ListView中去

foreach (Student S in list)
{
ListViewItem li = new ListViewItem();

li.Text = S.Code;

li.SubItems.Add(S.Name);
li.SubItems.Add(S.Sexstr);
li.SubItems.Add(S.Birstr);
li.SubItems.Add(S.SubjectName);

listView1.Items.Add(li);

}

4.窗体加载后自动绑定显示ListView中的数据
办法:数据绑定代码写在窗体的构造函数中
5.给用户展示最终数据(属性扩展)
6.行号
用C#变量循环++来实现
7.数据重复绑定
在绑定之前清空Items集合
listView1.Items.Clear();
8.选中一行数据
外观 - FullRowSelect:选择其中一项是否选中整行
CheckBoxes:复选框
GridLines:网格线
行为 - HideSelection :当控件没有焦点时,是否移除选定项的突出显示
HeaderStyle:列表头的样式
HoverSelection :鼠标悬浮在项上选择项,不好用,需停顿一会,通常与CheckBoxes连用
重点:
1、数据如何绑定上去

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

if (listView1.SelectedItems.Count > 1)//选择了多行
{
MessageBox.Show("修改只允许选择一行");
}
else if (listView1.SelectedItems.Count == 1)
{
foreach (ListViewItem li in listView1.SelectedItems)
{
if (li.Selected)
{
MessageBox.Show(li.SubItems[0].Text + li.SubItems[1].Text + li.SubItems[2].Text + li.SubItems[3].Text + li.SubItems[4].Text + li.SubItems[5].Text);
}
}
}
else//未选中
{
MessageBox.Show("请先选中您要修改的数据");
}


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

foreach (ListViewItem li in listView1.CheckedItems)
{
if (li.Checked)
{
MessageBox.Show(li.SubItems[0].Text + li.SubItems[1].Text + li.SubItems[2].Text + li.SubItems[3].Text + li.SubItems[4].Text + li.SubItems[5].Text);
}
}

删除代码部分:

删除限制:
1、不能不选
2、多条数据如果有未删除的,提示一下,删除成功几条,未成功几条,未成功是那几条

private void button2_Click(object sender, EventArgs e)
 {
  int DelCount = 0; //要删除的总条数
  int count = 0; //已经删除的条数
  string NotDelete = "";

  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)
   {
    count += 1;
   }
   else
   {
    NotDelete += li.SubItems[1].Text + ",";
   }
    
   
   }
  }
  NewMethod();
  if (count == DelCount)
  {
   MessageBox.Show("删除成功");
  }
  else
  {
   MessageBox.Show("删除失败!要删除" + DelCount + "条数据,未删除" + (DelCount - count) + "条数据,未删除的用户名为:" + NotDelete + "");
  }
  } 
 }

添加限制:

1.编号不能为空,且编号不能在数据库中查到

2.姓名不能为空;

技术分享
 public partial class Form2 : Form
 {
 Form1 F1 = null;
 public Form2(Form1 f1)
 {
  InitializeComponent();
  F1 = f1;
  List<Subject> slist = new SubjectData().select();
  Usub.DataSource = slist;
  Usub.ValueMember = "SubjectCode";
  Usub.DisplayMember = "SubjectName";
 }
 bool c = false;//判断编号是否存在
 private void textBox1_TextChanged(object sender, EventArgs e)
 {
  Student s = new StudentData().select(UCode.Text.Trim());//调用StudentData类的查询方法
  if (s == null)
  {
  code1.Text = "";
  c = false;
  }
  else
  {
  code1.Text = "此编号已存在!";
  c = true;
  }
  
 }
 bool n = false;//判断姓名是否为空
 private void button1_Click(object sender, EventArgs e)
 {
  if(UCode.Text=="")
  {
  code1.Text = "编号不能为空!";
  c = true;
  }  
  
  if(UName.Text=="")
  {
  name1.Text="姓名不能为空";
  n=false;
  }
  else
  {
  n=true;
  name1.Text="";
  }
  Student S1 = new Student();
  if(c==false&&n)
  {
  S1.Code = UCode.Text.Trim();
  S1.Name = UName.Text.Trim();
  S1.Sex = ra_true.Checked;
  S1.Birthday = BIR.Value;
  S1.SubjectCode = Usub.SelectedValue.ToString();
  bool bo= new StudentData().Insert(S1);
  if (bo)
  {
   MessageBox.Show("添加成功!");
   F1.NewMethod();
   this.Close();
  }
  else
  {
   MessageBox.Show("添加失败!");
  }
  }
 }
}
添加代码部分

 

winform(ListView及数据库连接)

标签:

热心网友 时间:2022-04-09 11:20

基本上,要显示数据库的资料应该用DataGridView比ListView来的好。

不过你用的是ListView,所以我还是讲ListView。


~ListView设定建议~


建议你把ListView的检视模式设为details

然後把ListView.FullRowSelect属性设为true

因为你要一次选中所有行,然後把每个行的值显示到对应的Textbox



~代码设定~


假设ListView的名字为lv,然後有以下这三个项目,他们在ListView中从左到右的排序为:

名字、年龄、性别

接著,他们各自对应的Textbox名字为:

txtName, txtAge, txtSex


~开始撰写代码~


你要把代码写在ListView的lClick事件裏头。

代码是这样写的:

private void lv_Click(object sender, EventArgs e)//lv的Click事件。
        {
            int selectCount = lv.SelectedItems.Count; //SelectedItems.Count就是:取得值,表示SelectedItems集合的物件数目。 
            if (selectCount > 0)//若selectCount大於0,说明用户有选中某列。
            {
                txtName.Text = lv.SelectedItems[0].SubItems[0].Text;
                txtAge.Text = lv.SelectedItems[0].SubItems[1].Text;
                txtSex.Text = lv.SelectedItems[0].SubItems[2].Text;
            }
        }

 

如果有问题在问我!

如果我答得出来就回答你!

追问我在查询时把所有信息都查询出来了,但是只显示姓名。按照你的方法把listview控件设置了view属性和ListView.FullRowSelect=true,确不能显示数据了~~

追答

您好,要在ListView添数据然後显示到该控件上可能比较麻烦,每个检视模式的ListView或许都有不同的方法。我就把代码贴给你看吧!

        //引入此命名空间,这样才能够使用一些我们需要的类别、属性等
        using System.Data.SqlClient;
        
        //先宣告这三个全局的变数,用来存放数据库的资料,并显示到lv上
        string name = "", sex = "";
        int age = 0;
        //在宣告这个全局的方法
        private void userInfo() 
        {
            lv.Items.Clear();//将ListView中的项目清空
            sqlConnection connection = new SqlConnection("Data Source=.;Initial Catalog=user;User ID=sa;"); //造一个sqlConnection。里头写的就是要连接的对象
            string sql = "SELECT * FROM user";//宣告一个Sql指令
            SqlCommand cmd = new SqlCommand(sql, SqlConnection);//执行指令
            connection.Open();//打开连接
            SqlDataReader reader = cmd.ExecuteReader();//用来读取资料

字数太多,我分次回答。但是你得要继续追问我,我才能继续回答....

热心网友 时间:2022-04-09 12:38

forcechanged 事件 读force的value 用value去数据库查对应的值 显示给textbox的value赋值 刷新画面追问我刚刚接触,还不是很清楚~~你的意思是,把“姓名”作为force的value值,当点击时利用其去查询数据库吗?我看了一下,c# listview中没有forcechanged事件呀

追答我用的devexpress的listview~ 你用原版的可能没有这个事件~不同的事件e能给你传回的值不一样~你找一个能回传焦点的响应事件~把焦点值读出来当做特征值去读相应的数据 然后显示在text里面就好了

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...爱你你是我的罗密欧 , 我愿意变成你的朱丽叶' 谁知 有句歌词是“我爱你你是我的朱丽叶,我愿意变成你的梁山伯”是哪... 为什么打印出来的文档页码和原来的不一样 ...两台电脑用路由器上网一台是W7一台是XP如何实现两台电脑共享文件 win7怎么联另一台电脑win7怎么让网络和另一台电脑共享 w7的系统怎么共享电脑w7系统里面文件怎么共享另一台电脑 共享win7电脑w7系统里面文件怎么共享另一台电脑 翡翠有收藏价值吗,我们玩家如何去投资 价格一两万元的翡翠如何挑选 ppt怎么转换成视频?简单四步法,轻松搞定ppt微课录制 在excel中Al表示的单元格地址为 A.第二行第一列 B. excel表格中“=汉字!B12”什么意思有什么用处啊 在excel里,A1的单元格内容是一个单元格的地址:B12 那怎么示A1所指的B12这个单元格的内容呢? 在excel工作表中,B12表示 列与第 行交叉点所属的单元格? 《急求手癣最初症状有什么??》 头癣的早期症状是什么? 体癣的早期症状??? 股癣初期症状有哪些 如何解除身份证绑定的 怎么解除身份证绑定 被盗,找不回来怎么解除身份证和微信银行卡绑定? 我的身份证绑定了5个微信 但是之前去的都找不回来了 上不去了 要怎么解除呢_百度问一问 winform连接sql数据库的listview怎么删除选中的一行记录 猴子在看成绩单代表什么意思 佳能MX378打印机怎么设置自动接传真 没有淡奶油可以用牛奶代替吗 做雪糕没有淡奶油可以用淡奶代替吗? 如何清除整列公式内容 只保留数值 excel iPhone X在深圳南山区哪儿换电池好? 华强北哪卖电池 中国历代皇帝顺序是什么? 甘加一个什么部首变成新字 甘加偏旁有什么字 甘加什么偏旁成什么字? 甘加上偏旁可以组成哪些字 甘加什么偏旁成什么字 甘换偏旁组词? 甘加两个偏旁再组词。 甘加字组成新字 甘加偏旁组词两个 用甘加偏旁和犬组词? 少加偏旁,甘加偏旁,文加偏旁,只加偏旁,还有鼓励的反义词 某天的某可以换什么偏旁组成一个字 winform窗体中的listview怎么实现分页,数据都读出来了,如何在显示时分页,求详细代码 广州菜都有那些? 广东产那些蔬菜和水果 具体都有哪些品种 广东现在适宜种什么蔬菜 广东菜有哪些代表菜?谢谢! 广东夏天种什么蔬菜 广东特有蔬菜有哪些