C#ListView的操作,MSDN文档已经说的比较详细,但是自己这两天在做一个小工具的时候发现还是有很多人在问跟我遇到的类似的问题:如何删除一列?将某一列删除后,重新导出数据如何才能正确?鉴于此,将自己的方式共享出来(c#小弟基本上没有怎么用过,只是简单了解,勿拍砖,小弟专注于移动安全、PC安全,欢迎交流:4014878)

删除一列

删除一列的操作,是在listView.Columns.Remove*这三个函数上,实际操作过程中,这三个函数仅仅是从UI上将对应的列隐藏起来了,在内存中,数据并未发生变化。

删除一列,可以增加一个对LitView的ColumnClick事件做一个处理:

listViewData.ColumnClick += new ColumnClickEventHandler(OnColumnClicked);private void OnColumnClicked(object sender, ColumnClickEventArgs e){DialogResult  result = MessageBox.Show(this,"是否要删除该列?","提示",MessageBoxButtons.YesNo);if (result == DialogResult.Yes){int n = e.Column+1;listViewData.Columns.RemoveByKey(Convert.ToString(n));int rows = listViewData.Items.Count;int nColumns = 0;for(int i=0;i<rows;i++){nColumns = listViewData.Items[i].SubItems.Count;if (nColumns < n) continue;listViewData.Items[i].SubItems.RemoveAt(e.Column);}}}

大家可能已经看到了,在调用了RemoveByKey之后,还对内存中的数据做了一次数据,至此,整个列的删除,才算完成。

网上也有一些关于如何删除一列的讨论,实际上我个人觉得真心没啥必要搞的那么复杂。

另一个就是根据文本内容动态增加一个ListView控件,先初始化一个ListView:

 private void createInitListControl(){if (listViewData == null){listViewData = new ListView();listViewData.SetBounds(5, 65, groupBox1.Width, this.ClientSize.Height - groupBox1.Height - 15);listViewData.GridLines = true;//表格是否显示网格线listViewData.FullRowSelect = true;//是否选中整行listViewData.View = View.Details;//设置显示方式listViewData.Scrollable = true;//是否自动显示滚动条listViewData.MultiSelect = false;//是否可以选择多行listViewData.ColumnClick += new ColumnClickEventHandler(OnColumnClicked);}}

然后在Form的构造方法中调用

 public Form1(){InitializeComponent();createInitListControl();}

对于事件的绑定,一定要在初始化方法中完成,否则控件不会响应对应的事件。

至于如何重新导出数据,就更加简单了:

 private void buttonExport_Click(object sender, EventArgs e){Stream myStream;SaveFileDialog saveFileDialog1 = new SaveFileDialog();saveFileDialog1.Filter = "txt files   (*.txt)|*.txt";saveFileDialog1.FilterIndex = 2;saveFileDialog1.RestoreDirectory = true;int nRows = 0;string text = "";if (saveFileDialog1.ShowDialog() == DialogResult.OK){if ((myStream = saveFileDialog1.OpenFile()) != null){using (StreamWriter sw = new StreamWriter(myStream)){nRows = listViewData.Items.Count;for (int i = 0; i < nRows; i++){for (int j = 0; j < listViewData.Items[i].SubItems.Count; j++){text += listViewData.Items[i].SubItems[j].Text;if (j < listViewData.Items[i].SubItems.Count - 1)text += "----";}text += "\r\n";}sw.Write(text);}myStream.Close();MessageBox.Show("保存成功");}}}

C#ListView操作一二相关推荐

  1. android listview标题置顶,Android仿QQ左滑删除置顶ListView操作

    最近闲来无事,于是研究了一下qq的左滑删除效果,尝试着实现了一下,先上效果图: 大致思路原理: - 通过设置margin实现菜单的显示与隐藏 - 监听onTouchEvent,处理滑动事件 上代码 i ...

  2. Linux和Windows栈帧机器码,栈溢出原理与 shellcode 开发

    Android中ListView实现图文并列并且自定义分割线(完善仿微信APP) 昨天的(今天凌晨)的博文中,我们通过使用Fragment和ViewPager模仿实现了微信的布局框架.今天我们来通过使 ...

  3. 用代码移动桌面图标(贪吃蛇)

    效果图 前言 记得上高二的时候,闲来无事,上b站搜电脑病毒的视频看(不要问我为什么会搜这个),看到一个很有意思的"病毒",其实也不算病毒,它会控制桌面图标形成一个人形,并跳舞,跳完 ...

  4. 基于C#结合SQL设计学生成绩系统系统

    基于C#结合SQL设计学生成绩系统系统 错误集合 以下为C#部分 呈现效果 C#代码 这是数据库大作业,原本想的是用python和SQL,但遇到了很多错误,相对C#也很麻烦,因此换了C#.但还是先记录 ...

  5. Android项目:手机安全卫士(12)—— 通讯卫士之电话短信黑名单设置与拦截

    版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] Android项目:手机安全卫士(12)-- 通讯卫士之电话.短信黑名单设置与拦截 1 介绍 今天进入新的功能开发了:通讯卫士, ...

  6. 关于大型网站技术演进的思考

    关于大型网站技术演进的思考(一)--存储的瓶颈(1) 前不久公司请来了位互联网界的技术大牛跟我们做了一次大型网站架构的培训,两天12个小时信息量非常大,知识的广度和难度也非常大,培训完后我很难完整理出 ...

  7. Android在listview添加checkbox实现单选多选操作问题

    android根据View的不同状态更换不同的背景 http://www.eoeandroid.com/thread-198029-1-1.html android 模仿朋友网推出的菜单效果[改进版] ...

  8. ListView的操作模式的选择的更详细的解释CHOICE_MODE_MULTIPLE与CHOICE_MODE_MULTIPLE_MODAL...

    本文介绍了我们将如何取得具体ListView多选择操作.本文将正确使用ListViewCHOICE_MODE_MULTIPLE要么CHOICE_MODE_MULTIPLE_MODAL时间easy误区. ...

  9. 如何获取并操作listview中的控件

    使用如下方法可以获取listview中的单个控件,并进行相应的操作使用 lv.setOnItemClickListener(new OnItemClickListener(){ @Override p ...

最新文章

  1. JavaScript字符串转数字的5种方法及其陷阱
  2. size()函数的使用
  3. PAT乙类1005之继续(3n+1)猜想 (25 分)
  4. layui向body添加html_layui 各项配置
  5. android商品mysql_android使用mysql的方法总结
  6. Confluence wiki 使用记录
  7. Airflow 中文文档:初始化数据库后端
  8. springboot输出日志到文件配置
  9. js中立即执行函数会预编译吗_浅析Vue的生命周期以及JS异步
  10. Linux CentOS上用iptables设置防火墙遇到的问题
  11. java鼠标乱跑_win7鼠标光标乱跳怎么办?解决win7鼠标光标乱跑的方法
  12. 河北化工医药职业技术学院学计算机怎么样,河北化工医药职业技术学院宿舍条件怎么样 男生女生宿舍图片...
  13. python软件安装链接电视_Python爬虫程序:电视剧琅琊榜全集的自动化处理
  14. 个人项目——基于STM32的太阳能供电智能花盆
  15. Word文档翻译成中文的方法
  16. 电脑英语Computer English
  17. 打开PDF文件时,出现“打开本文档时发生错误。无法找到本文件。”解决办法,亲自尝试成功
  18. METATRADER 5 中的订单、持仓和成交
  19. GO 语言常用工具类-通用方法集合
  20. 10000以内素数表(代码块)

热门文章

  1. 学习笔记:在Ubuntu16.04系统内安装Petalinux软件(包括如何安装Ubuntu16.04和相关支持库 详解)
  2. PostgreSQL 修改用户密码
  3. 计算机未来规划范文200,计算机职业规划书范文
  4. 【算法】红黑树插入数据(变色,左旋、右旋)(二)
  5. 简单好用高薪的Python!!!!
  6. hex与bin互转工具 H-Converter使用教程
  7. 计算机组成认知的笔记1000字,[转载]笔记整理——认知负荷理论
  8. 学校网站服务器配置要求,学校校园网站服务器安全配置建议.docx
  9. Unity_Shader中级篇_10_Unity Shader入门精要
  10. 绿盟科技网络安全威胁周报2017.15 建议关注方程式组织泄漏大量针对Windows攻击工具...