`
cfeers
  • 浏览: 135437 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

工作笔记(二)

 
阅读更多

1.TreeView 中如何根据 Node名得到index

 

Tv1.Name="节点1";

Tv1.Nodes[节点1].Checked = true;// 在遍历的时候就不会引发index下标越界的错误了,特别是多次遍历集合的时候

,这样就可以避免越界了,直接根据赋值的Name名称来给Checked赋值;

2.移除字符串中的相同字符

 

string str = "1,22,333,4,5,1,22,333,6,7,";//要拆分的字符串   
ArrayList al = new ArrayList();   
string[] arr = str.Split(',');//拆分后的字符数组   
  
for (int i = 0; i < arr.Length; i++)   
{   
    if (al.Contains(arr[i]) == false)//判断 要拆分的字符串 中是否已经存在于这个ArrayList中   
    {   
        al.Add(arr[i]);//不存在则添加进ArrayList   
    }   
    else  
    {    break;// 删除一个重复字符
        //al.Remove(arr[i]);//存在则从ArrayList中删除2个   
    }   
}   
Response.Write(String.Join(",",(string[])al.ToArray(typeof(string))));//把ArrayList里的数组值组合成一个字符串   

 

3. 如何在TreeView里面 勾选Checked,且放入ArrayList,并且根据Combobox加载树中的所选分区列表;

 

根据tv里的AfterCheck事件得到每次勾选的Checked的记录值,

if(e.Node.Checked)

{

   if(!arrList.Contains(e.Node.Name))

      {

          arrList.Add(e.Node.Name);

       }

}

 else

  {

      if(arrList.Contains(e.Node.Name)) 

        {

            arrList.Remove(e.Node.Name);

         }

   }

 

这样,arrList里面存放的就是当前勾选的值了。也就是说,你选择就存入ArrayList,否则就不存。

以下代码是根据通道列表遍历所选分区:

private void RepeatForChannels()

{

  for(int i= 0 ; i< 通道列表; i++)

   {

     for(int j= 0; j < treeView.Nodes.Count; j++)

     {

        for(int jj=0 ; jj < arrayList.Count; jj++)

         {

           if(treeView.Nodes[j].Name == arrayList[jj].Tostring())

             {

                 treeView.Nodes[j].Checked = true;

              }

         }

      }

   }

}

把RepeatForChannels放入Form_Load和 Combobox_SelectIndexChanged事件中,每次就可以把所选的分区列表根据通道来显示出来了。

 

 4.C#多线程强制退出程序
最近在学习多线程程序的开发,但是启动了多个线程的程序在关闭的时候却出现了问题,如果程序退出的时候不关闭线程,那么线程就会一直的存在,但是大多启动的线程都是局部变量,不能一一的关闭,如果调用Thread.CurrentThread.Abort()方法关闭主线程的话,就会出现ThreadAbortException 异常,因此这样不行。
后来找到了这个办法:
Thread.IsBackground 设置线程为后台线程。
msdn 对前台线程和后台线程的解释:托管线程或者是后台线程,或者是前台线程。后台线程不会使托管执行环境处于活动状态,除此之外,后台线程与前台线程是一样的。一旦所有前台线程在托管进程(其中 .exe 文件是托管程序集)中被停止,系统将停止所有后台线程并关闭。通过设置 Thread.IsBackground 属性,可以将一个线程指定为后台线程或前台线程。例如,通过将 Thread.IsBackground 设置为 true,就可以将线程指定为后台线程。同样,通过将 IsBackground 设置为 false,就可以将线程指定为前台线程。从非托管代码进入托管执行环境的所有线程都被标记为后台线程。通过创建并启动新的 Thread 对象而生成的所有线程都是前台线程。如果要创建希望用来侦听某些活动(如套接字连接)的前台线程,则应将 Thread.IsBackground 设置为 true,以便进程可以终止。
所以解决办法就是在主线程初始化的时候,设置:
Thread.CurrentThread.IsBackground = true;
这样,主线程就是后台线程,在关闭主程序的时候就会关闭主线程,从而关闭所有线程。
但是这样的话,就会强制关闭所有正在执行的线程,所以在关闭的时候要对线程工作的结果保存。

——————————————


C#程序的几种退出

1.Application.Exit(); //好像只在主线程可以起作用,而且当有线程,或是阻塞方法的情况下,很容易失灵
2.System.Environment.Exit(0); //无论在主线程和其它线程,只要执行了这句,都可以把程序结束干净
3.this.Close();
4.Application.ExitThread();

 

5. Treeview中的图标不能正常显示

XP系统中,使用Application.EnableVisualStyles后,Treeview中的图标不能正常显示!

 

this.TreeView.BeginUpdate();

//处理操作

//this.TreeView.EndUpdate();

 

这样TreeView出来之后节点就不会显示不全了。

 

分享到:
评论

相关推荐

    PHP工作笔记.zip

    插入排序 - 希尔排序][二十例 交换排序 - 快速排序][二一例 算法求解应用][二二例 跟踪调试代码 XDebug][二三例 接口调试工具 SocketLog][二四例 递归 尾递归 迭代 回调][二五例 数据库操作(MySQL扩展)][二六例 ...

    Golang工作笔记.zip

    [第一例 留言板][第二例 gRPC使用例子][第三例 基于go-micro做服务注册和服务发现][第四例 聊天室][第五例 工具库][第六例 原生sql操作][第七例 sqlx操作][第八例 Redis数据库(gomodule/redigo)][第九例 Redis消息...

    MLX90640开发笔记(完整十章20191012).pdf

    MLX90640开发笔记(二)API移植-I2C和关键接口函数 MLX90640开发笔记(三)工作流程和操作MLX90640的一般步骤 MLX90640开发笔记(四)损坏和不良像素的处理 MLX90640开发笔记(五)阵列插值-由32*24像素到512*384...

    基于JAVA的云笔记系统的设计与实现

    第二章 业务逻辑概述和系统需求分析 5 2.1 业务逻辑概述 5 2.2 用例图 6 2.3 功能需求 6 2.4 性能需求 6 第三章 功能分析 7 3.1 系统功能结构 7 3.2 数据库设计 7 3.2.2 数据库概述 7 第四章 系统实现 8 4.1 登录...

    ArcEngine二次开发实例笔记

    是作者自己在研究生三年的ArcEngine92开发的实践过程中一点一滴积累起来的财富,相信笔记中记录的66个实例也是你ArcEngine二次开发中遇到的难题,因为现在已经很少接触GIS二次开发,所以将之前的工作总结贡献出来。...

    管理学(罗宾斯)笔记

    斯蒂芬•P•罗宾斯《管理学》笔记 第Ⅰ篇 绪论 第一章 管理者与组织导论 一、谁是管理者 (1)管理者:组织中指挥他人活动的人,他们拥有各种头衔。 (2)操作者:非管理人员,他们直接从事某项工作或任务,不...

    国嵌笔记。全集全集

    本人学习的国嵌笔记。操作详细! 第一季 精通嵌入式 4 一. 安装tftp服务器 4 二. Samba服务器安装 4 三. NFS服务器 5 四. 安装vsftpd FTP服务器 5 第2季-裸奔吧-ARM 6 一. 安装交叉编译器 6 二. 安装驱动 6 三...

    小米笔记本12.5寸二代(m3-7y30 hd615)黑苹果专用EFI文件

    小米笔记本12.5寸二代(m3-7y30 hd615)黑苹果专用EFI文件,制作黑苹果安装U盘时,用本EFI文件里面的clover替换U盘中的clover即可。WiFi,蓝牙,触摸板不工作,其他硬件均正常。

    软件测试笔记二

    三大支撑工作流:配置和变更管理;项目管理和环境。 (每一个迭代中,都要经历这9个工作流) 四大特征:风险的优先考虑(分级,最重要的先考虑……)。 增量迭代开发与测试。 以架构为中心(稳定)。 用例驱动...

    优化笔记 v1.0

    第二层是记录网站的每日详细状况,如:收入量、反向链接数量、关键词排名、今日所做工作...等等。登陆软件后的第一个界面,基本操作图片上已有大概说明。 点击“Goto”或“查看网站”按钮进入第第二个界面,如果是第...

    ps课堂笔记

    课堂笔记,自己总结,一手资源 第一课 初始化ps设置: 启动ps时,按alt+shift+ctrl,ps会问是否还原初始设置,点是。 公司ps素材: 1、Ps原始素材:c:\progurame files\adobe\photoshop cs3\样本 2、中心ps素材:c...

    三合一笔记本电脑主板测试卡

    这使得VIP版的诊断卡更适合于在恶劣环境下长期工作。 该VIP版笔记本诊断卡是三合一版诊断卡的升级版本,支持Mini PCI, Mini PCI-E, LPC总线接口。该诊断卡使用方便,稳定性好,是笔记本电脑维修的理想工具。 一:...

    电路设计笔记

    (笔记)电路设计(二)之串联匹配电阻的应用 (笔记)电路设计(三)之0欧姆电阻、磁珠、电感的应用 (笔记)电路设计(四)之电容的应用 (笔记)电路设计(五)之电感的应用 (笔记)电路设计(六)之稳压二极管的应用 (笔记)电路设计...

    PHP工作笔记.pdf

    * 第二序 相关阅读 * 第三序 留言板项目 * 第四序 调试工具 * 第五序 验证码 * 第六序 加密和解密 * 第七序 原生MySQL工具类 * 第八序 分页功能 * 第九序 算法 * 第十序 模板集群(多项目用到的模块)] * 第十一序 ...

    周三多高教版第二版管理学笔记

    第二节 信息管理工作 第三节 信息化管理 综合案例 案例一:2004年中国十大企业社会责任 案例二:先难后易的国际化战略 第二篇 决策与计划 第五章 决策与决策方法 第一节 决策与决策理论 第二节 决策过程 第三节 决策的...

    MySQLDBA运维笔记.pdf

    mysql 总结........................................................................................................................................6 1.1 数据库的种类.......................................

    《TCP/IP路由技术卷一中文版(第二版)》助读笔记

    近日经典书籍《TCP/IP路由技术卷一中文版》“第二版”已经在国内上市,此助读笔记的主 要作用就是帮助那些首次阅读该书的读者顺利完成学习,那些已阅读过此书的朋友也可以通 过该笔记进行快速的复习,同时也可以把该...

    photoshop 笔记

    photoshop 笔记 第一节 认识图像 位图图像:由像素组成,每一个像素只记录一个颜色。 在屏幕上缩放位图图像时,它们可能会丢失细节,因为位图图像与分辨率有关。 矢量图像:由路径组成,每一个路径只记录一种填充...

    启示录学习笔记.docx

    过去二十多年,Marty Cagan作为高级产品经理人为多家一流企业工作过,包括惠普、网景、美国在线、eBay。他亲历了个人电脑 、互联网、 电子商务的起落沉浮。《启示录:打造用户喜爱的产品》从人员、流程、产品三个...

    会计基础读书笔记

    会计的概念 二.会计的基本职能 三.会计对象 四.会计的基本假设 五.会计基础 一.会计的概念 会计是以货币为主要计量单位,反映与监督一个单位经济活动的一种经济管理工作。 其特点: 1.会计是以货币为主要计量单位,...

Global site tag (gtag.js) - Google Analytics