C# winform Listbox添加和删除items
两个listbox添加和删除items
#region 添加/移除
//添加
private void btnAdd_Click(object sender, EventArgs e)
{
if (listboxA.Items.Count <= )
{
return;
}
this.AddItems(listboxB, listboxA.SelectedItems);
this.RemoveItems(listboxA, listboxA.SelectedItems);
//UpdateListViewHandler();//调用委托,更新原列表 刷新MainForm窗体
}
//移除
private void btnRemove_Click(object sender, EventArgs e)
{
if (listboxB.Items.Count <= )
{
return;
}
this.AddItems(listboxA, listboxB.SelectedItems);
this.RemoveItems(listboxB, listboxB.SelectedItems);
//UpdateListViewHandler();//调用委托,更新原列表 刷新MainForm窗体
}
/// <summary>
/// 向一个ListBox中添加Items
/// </summary>
/// <param name="lstBox"></param>
/// <param name="items"></param>
private void AddItems(UI.ListBoxEx lstBox, IEnumerable items)
{
DataTable dt = null;
foreach (object item in items)
{
if (item is DataRowView)
dt = ((DataRowView)item).Row.Table.Clone();
if (item is DataRow)
dt = ((DataRow)item).Table.Clone();
break;
}
if (lstBox.DataSource != null)
dt = ((DataTable)lstBox.DataSource).Copy();
foreach (object item in items)
{
if (item is DataRowView)
dt.Rows.Add(((DataRowView)item).Row.ItemArray);
if (item is DataRow)
dt.Rows.Add(((DataRow)item).ItemArray);
}
lstBox.DataSource = dt;
if (this.Text.Contains("Add or Remove Exc"))
{
lstBox.DisplayMember = "ExcName";
lstBox.ValueMember = "ExcID";
}
else if (this.Text.Contains("Add or Remove Cs"))
{
lstBox.DisplayMember = "CsName";
lstBox.ValueMember = "CsID";
}
}
/// <summary>
/// 从一个ListBox中删除Items
/// </summary>
/// <param name="lstBox"></param>
/// <param name="items"></param>
private void RemoveItems(UI.ListBoxEx lstBox, IEnumerable items)
{
DataTable dt = ((DataTable)lstBox.DataSource);
DataTable newDt = dt.Clone();
bool flag = false;
//因为直接删除DataRow会保存,所以用这样丑陋的方式处理了
foreach (DataRow dr in dt.Rows)
{
foreach (DataRowView item in items)
{
if (dr == item.Row)
{
flag = true;
break;
}
else
flag = false;
}
if (!flag)
newDt.Rows.Add(dr.ItemArray);
else
continue;
}
lstBox.DataSource = newDt;
if (this.Text.Contains("Add or Remove Exc"))
{
lstBox.DisplayMember = "ExcName";
lstBox.ValueMember = "ExcID";
}
else if (this.Text.Contains("Add or Remove Cs"))
{
lstBox.DisplayMember = "CsName";
lstBox.ValueMember = "CsID";
}
}
#endregion
C# winform Listbox添加和删除items的更多相关文章
- Winform中对自定义xml配置文件进行Xml节点的添加与删除
场景 Winform中自定义xml配置文件后对节点进行读取与写入: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10053213 ...
- jquery 动态添加和删除 ul li列表
今天需要实现一个jquery动态添加和删除 ul li列表中的li行,自己简单的实现乐一个,分享一下 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML ...
- C# winform listBox中的项上下移动(转)
C# winform listBox中的项上下移动 分类: C# winform2009-06-24 12:37 876人阅读 评论(0) 收藏 举报 winformc#object //上移节点 ...
- matplotlib工具栏源码探析三(添加、删除自定义工具项)
转: matplotlib工具栏源码探析三(添加.删除自定义工具项) matplotlib工具栏源码探析二(添加.删除内置工具项)探讨了工具栏内置工具项的管理,除了内置工具项,很多场景中需要自定义工具 ...
- MVC5 网站开发之六 管理员 2、添加、删除、重置密码、修改密码、列表浏览
目录 奔跑吧,代码小哥! MVC5网站开发之一 总体概述 MVC5 网站开发之二 创建项目 MVC5 网站开发之三 数据存储层功能实现 MVC5 网站开发之四 业务逻辑层的架构和基本功能 MVC5 网 ...
- [vs2008]Visual Studio 2008 SP1添加或删除功能提示查找SQLSysClrTypes.msi文件
前言 今天接到领导布置的一个任务,是之前同事负责的项目.离职了,现在客户有些地方需要修改,由于我之前参与过,就落在我的头上了. 然后我就把代码弄了过来,打开发现其中需要用到水晶报表.(我觉得不好用,不 ...
- JavaWeb_day03_员工信息添加修改删除
day03员工的添加,修改,删除 修改功能 思路 : 点击修改员工数据之后,跳转到单行文本,查询要修改的员工id的全部信息,主键id设置为readonly,其余的都可以修改, 修改之后,提交按钮,提交 ...
- 原生js事件的添加和删除
在IE浏览器中添加或删除事件用attachEvent.detachEvent.在其他标准浏览器中则用addEventListener.removeEventListener.下面的对事件的添加和删除做 ...
- Google Map API Version3 :代码添加和删除marker标记
转自:http://blog.sina.com.cn/s/blog_4cdc44df0100u80h.html Google Map API Version3 教程:在地图 通过代添加和删除mark标 ...
随机推荐
- 利用html 5 websocket做个山寨版web聊天室(手写C#服务器)
在之前的博客中提到过看到html5 的websocket后很感兴趣,终于可以摆脱长轮询(websocket之前的实现方式可以看看Developer Works上的一篇文章,有简单提到,同时也说了web ...
- Flex小结
参考两篇文章 文章1 文章2 容器用display: flex;或display: inline-flex;指定为弹性Flex布局.采用Flex布局的元素,称为Flex容器(flex containe ...
- Java中equals与==和comparaTo的区别
一.先说说Java中equals和==的区别: Java中的数据类型,可分为两类: 1.基本数据类型(也叫原始数据类型) 八大基本数据类型 char byte short int long doubl ...
- 知方可补不足~SQL2005使用ROW_NUMBER() OVER()进行数据分页
回到目录 数据分页是这个经常说的东西,无论在WEBForm还是WinForm中它都会被单独拿出来,或者是公用组件,或者是公用类库,反正对于数据分页这个东西,总是我们关注的一个话题,但事实上,数据分页归 ...
- java基础 数组15
15.找出如下数组中最大的元素和最小的元素, a[][]={{3,2,6},{6,8,2,10},{5},{12,3,23}}
- ajax图片上传及FastDFS入门案例.
今天来开始写图片上传的功能, 现在的图片上传都讲求 上传完成后立刻回显且页面不刷新, 这里到底是怎么做的呢? 当然是借助于ajax了, 但是ajax又不能提交表单, 这里我们还要借助一个插件: jqu ...
- git查看日志
git查看日志 git log -n 显示前N条记录 git log -3 退出log命令 直接输入: q git log --stat -n 显示提交的文件的简要的修改统计 $ git log -- ...
- javascript实现汉诺塔动画效果
javascript实现汉诺塔动画效果 当初以为不用html5也很简单,踩了javascript单线程的大坑后终于做出来了,没事可以研究下,对理解javascript的执行过程还是很有帮助的,代码很烂 ...
- Spring.NET的AOP怎么玩
之前公司一直不让使用第三方组件,因此AOP方面的组建一直不能使用,很多面向切面的应用只能通过自己写一些GenericMethod的泛型方法来解决,有一些呆板.由于公司已经开始全面转Java,因此架构组 ...
- WPF自定义控件与样式(12)-缩略图ThumbnailImage /gif动画图/图片列表
一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接. 本文主要针对WPF项目 ...