C#单击过的listbox item第二次单击不会再传值

liutian1234567890 2015-06-16 10:32:13
C#做的两个窗体homepage和message,单击homepage窗体的listbox的subitem会在message窗体上显示,这是我的代码,现在的问题是单击过一次的subitem已经在message窗体上显示了,可是在单击还会显示,求解!我想做一个判断在message窗体上已经显示的subitem变不在第二次传送,只是高亮显示一下,却不知道怎么写代码,求赐教! if (ms != null)
{
if (ms.IsDisposed)
ms = new NChat.message();

ms.Show();
ms.lbNN.Items.Add(sub.NicName);
ms.lbname.Text = sub.NicName;


}
else
{
ms = new message();
ms.lbNN.Items.Add(sub.NicName);
ms.Show();
}
...全文
170 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
liutian1234567890 2015-06-16
  • 打赏
  • 举报
回复
引用 6 楼 Z65443344 的回复:
实在不行,就做个for循环遍历里面的每一项,看是否有相等的呗 反正你即使找到某个函数可以实现同样的功能,最终内部执行的时候依然还是利用遍历比较
有没有代码呢???我是不知道用哪个属性,求代码!!
於黾 2015-06-16
  • 打赏
  • 举报
回复
实在不行,就做个for循环遍历里面的每一项,看是否有相等的呗 反正你即使找到某个函数可以实现同样的功能,最终内部执行的时候依然还是利用遍历比较
liutian1234567890 2015-06-16
  • 打赏
  • 举报
回复
有木有人呢????人们呢????
liutian1234567890 2015-06-16
  • 打赏
  • 举报
回复
引用 3 楼 Z65443344 的回复:
你先弄明白ms.lbNN.Items是啥 clbfriend.SelectSubItem又是啥 别胡乱的都转string去比较字符串 ms.lbNN.Items明显是个集合 而clbfriend.SelectSubItem是当前选择的控件 这跟你要添加的内容有直接联系?
恩恩,明白了,但是我真不知道用哪个属性来代表ms.lbNN这个窗体的listbox已有的值,然后去和现在选中的值来做比较,……
於黾 2015-06-16
  • 打赏
  • 举报
回复
你先弄明白ms.lbNN.Items是啥 clbfriend.SelectSubItem又是啥 别胡乱的都转string去比较字符串 ms.lbNN.Items明显是个集合 而clbfriend.SelectSubItem是当前选择的控件 这跟你要添加的内容有直接联系?
liutian1234567890 2015-06-16
  • 打赏
  • 举报
回复
引用 1 楼 duanzi_peng 的回复:
你判断 .Items 是否包含这一项不就行了,包含就不添加,不包含就添加。
恩恩,有具体代码吗?我写的是 if(ms.lbNN.Items.ToString()==clbfriend.SelectSubItem.ToString()) 可是提示有错,说是没有对象实例,我觉得是我这样写的代码不对,求代码!
exception92 2015-06-16
  • 打赏
  • 举报
回复
你判断 .Items 是否包含这一项不就行了,包含就不添加,不包含就添加。
liutian1234567890 2015-06-16
  • 打赏
  • 举报
回复
引用 11 楼 Z65443344 的回复:
你确定这里应该是clbfriend.SelectSubItem? 因为我只能靠只言片语去猜 没法知道你真正到底是个什么控件 你先确定你用的2个控件里,到底哪个属性是你需要用来比较的
if(!HaveOne) { ms.Show(); ms.lbNN.Items.Add(sub.NicName); ms.lbname.Text = sub.NicName; //HaveOne = false; } else { for (i = 0; i < ms.lbNN.Items.Count; i++) { if (ms.lbNN.Items[i].ToString() == clbfriend.SelectSubItem.ToString()) { HaveOne = true; break; } } } 我是这样写的,不知道为什么没有走if语句里面的程序,直接过去了
liutian1234567890 2015-06-16
  • 打赏
  • 举报
回复
引用 11 楼 Z65443344 的回复:
你确定这里应该是clbfriend.SelectSubItem? 因为我只能靠只言片语去猜 没法知道你真正到底是个什么控件 你先确定你用的2个控件里,到底哪个属性是你需要用来比较的
恩恩,对着呢,程序走if语句,但是没有走if里面的语句,直接跳过去了,
liutian1234567890 2015-06-16
  • 打赏
  • 举报
回复
引用 11 楼 Z65443344 的回复:
你确定这里应该是clbfriend.SelectSubItem? 因为我只能靠只言片语去猜 没法知道你真正到底是个什么控件 你先确定你用的2个控件里,到底哪个属性是你需要用来比较的
不是clbfriend.SelectSubItem是for (i = 0; i < ms.lbNN.Items.Count; i++) { if (ms.lbNN.Items[i].ToString() == clbfriend.SelectSubItem.ToString()) { HaveOne = true; break; } }但是不知道为什么程序没有走HaveOne = true;
於黾 2015-06-16
  • 打赏
  • 举报
回复
你确定这里应该是clbfriend.SelectSubItem? 因为我只能靠只言片语去猜 没法知道你真正到底是个什么控件 你先确定你用的2个控件里,到底哪个属性是你需要用来比较的
liutian1234567890 2015-06-16
  • 打赏
  • 举报
回复
引用 8 楼 Z65443344 的回复:
bool HaveOne=false; for(int i=0;i<ms.lbNN.Items.Count;i++) { if(ms.lbNN.Items[i].Text==clbfriend.SelectSubItem.Text) { HaveOne=true; break; } }
加了断点调试,不知道为什么程序不走HaveOne=true; break;
exception92 2015-06-16
  • 打赏
  • 举报
回复
引用 2 楼 liutian1234567890 的回复:
[quote=引用 1 楼 duanzi_peng 的回复:] 你判断 .Items 是否包含这一项不就行了,包含就不添加,不包含就添加。
恩恩,有具体代码吗?我写的是 if(ms.lbNN.Items.ToString()==clbfriend.SelectSubItem.ToString()) 可是提示有错,说是没有对象实例,我觉得是我这样写的代码不对,求代码![/quote] 求代码?? 自己不会动手搜索么,不会像查询一下listbox的属性
於黾 2015-06-16
  • 打赏
  • 举报
回复
bool HaveOne=false; for(int i=0;i<ms.lbNN.Items.Count;i++) { if(ms.lbNN.Items[i].Text==clbfriend.SelectSubItem.Text) { HaveOne=true; break; } }
明日科技出版的c#开发典型模块大全配套光盘,要的可以下载,因大小受限,分开上传! 第1章 认识C#及开发环境 1.1 C#概述 1.1.1 C#发展历程 1.1.2 C#语言编程环境 1.2.NETFramework2.0简介 1.2.1 什么是.NETFramework2.0 1.2.2.NETFramework2.0特性 1.3 安装集成开发环境VisualStudio2005 1.3.1 安装VisualStudio2005开发环境 1.3.2 安装MSDN帮助 1.3.3 如何使用MSDN帮助 1.3.4 利用MSDN帮助附带的示例学习编程 1.4 启动VisualStudio2005开发环境 1.4.1 启动VisualStudio2005 1.4.2 创建项目 1.5 熟悉VisualStudio2005集成开发环境 1.5.1 新特性 1.5.2 主窗口 1.5.3 菜单栏 1.5.4 工具栏 1.5.5 文档窗口 1.5.6 工具箱窗口 1.5.7 解决方案资源管理器窗口 1.5.8 属性窗口 1.5.9 代码编辑器 1.5.10 “错误列表”面板 1.5.11 “输出”面板 1.6 程序调试 1.6.1 断点操作 1.6.2 使用开始、中断和停止执行功能调试程序 1.6.3 单步执行 1.6.4 运行到程序的指定位置 第2章 QQ企业通 2.1 设计思路 2.2 关键技术 2.2.1 INI文件的应用 2.2.2 线程的应用 2.2.3 在Socket中发送大容量的消息 2.2.4 将流序列化或反序列化为对象 2.2.5 用InnerList列表记录信息 2.3 设计过程 2.3.1 类库的设计 2.3.2 客户端注册模块设计 2.3.3 客户端登录模块设计 2.3.4 客户端QQ模块设计 2.3.5 客户端消息发送模块设计 2.3.6 服务器端控制台模块设计 第3章 SQL数据表提取器模块 3.1 概述 3.2 关键技术 3.2.1 如何备份数据库 3.2.2 如何还原数据库 3.2.3 如何附加数据库 3.2.4 如何分离数据库 3.2.5 设置数据库模式 3.3 设计过程 3.3.1 主窗体 3.3.2 获取服务器名称 3.3.3 获取所有数据库 3.3.4 获取所有数据表 3.3.5 备份数据库 3.3.6 还原数据库 3.3.7 附加数据库 3.3.8 分离数据库 3.3.9 导出表结构 3.3.10 导出数据 第4章 万能搜索模块 4.1 设计思路 4.2 关键技术 4.2.1 如何制作一个接口程序 4.2.2 实现接口程序的信息互传 4.2.3 如何将接口程序加载到其他程序中 4.2.4 怎样操作RichtextBox控件的选择文本 4.2.5 如何获取数据表中字段的描述信息 4.3 设计过程 4.3.1 获取数据表中字段的中文信息 4.3.2 添加数据表的查询条件 4.3.3 向SQL语句中添加括号 4.3.4 查询生成后的SQL语句 4.3.5 主程序获得接口信息 第5章 万能打印模块 5.1 设计思路 5.2 关键技术 5.2.1 打印设置(PrintDocument类) 5.2.2 打印预览对话框(PrintPreviewDialog) 5.2.3 打印对话框(PrintDialog) 5.2.4 获取指定颜色值和字体样式 5.2.5 DataGridView控件的相关应用 5.3 设计过程 5.3.1 打印信息的设置 5.3.2 表格样式的设置 5.3.3 打印类的设置 5.3.4 打印数据信息 第6章 决策分析模块 6.1 设计思路 6.2 关键技术 6.2.1 游标的基本操作 6.2.2 存储过程的基本操作 6.2.3 透视表的基本概念 6.2.4 统计表的基本操作 6.2.5 单击显示右键菜单 6.3 设计过程 6.3.1 主窗体的初始化 6.3.2 透视表的筛选 6.3.3 透视表的设计 6.3.4 统计表的设计 第7章 自定义图表控件 7.1 设计思路 7.2 关键技术 7.2.1 控件的生成 7.2.2 如何在项目中添加控件 7.2.3 在“属性”对话框中添加属性 7.2.4 用GDI+绘制图形 7.2.5 如何在控件上绘制图形 7.2.6 获取扇形外弧中心点的位置 7.3 设计过程 7.3.1 向自定义控件中添加属性 7.3.2 获取绘制图表的初始值数据 7.3.3 绘制标签框 7.3.4 绘制图表中的表格 7.3.5 绘制条形图 7.3.6 绘制面形图 7.3.7 绘制饼形图 第8章 电子邮件收发模块 8.1 概述 8.2 关键技术 8.2.1 Base64编码格式 8.2.2 SMTP服务 8.2.3 POP3协议 8.2.4 使用Jmail组件接收邮件

110,530

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧