热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

winfromC#树勾选等

AfterCheck树勾选privatevoidt

AfterCheck

///

/// 树勾选/// /// /// private void tvCourse_AfterCheck(object sender, TreeViewEventArgs e){if (e.Action ==TreeViewAction.ByMouse){if (e.Node.Checked){SetChildNode(e.Node, true);if (null!= e.Node.Parent){SetParentNode(e.Node, true);}//获取选中节点值
lstChapterIds.Add(e.Node.Name);this.btnDelRes.Enabled = true;}else{//取消节点选中状态之后,取消所有父节点的选中状态SetChildNode(e.Node, false);//如果节点存在父节点,取消父节点的选中状态if (e.Node.Parent != null){SetParentNode(e.Node, false);}//获取选中节点值if (lstChapterIds.Contains(e.Node.Name)){lstChapterIds.Remove(e.Node.Name);if (!lstChapterIds.Any()){this.btnDelRes.Enabled = false;}}}}}
AfterCheck

设置节点

///

/// 查找根节点/// /// 节点node/// private TreeNode FindParentNode(TreeNode node){if (node.Parent == null){return node;}else{return FindParentNode(node);}}/// /// 设置父节点/// /// 当前节点/// 状态private void SetParentNode(TreeNode node, bool state){TreeNode pNode = node.Parent;if (null != pNode){pNode.Checked = state;bool flag = false;foreach (TreeNode currNode in pNode.Nodes){if (!currNode.Checked) //控制父节点全选,父节点选中去掉!
{flag = false;pNode.Checked = flag;break;}//SetParentNode(item, state);
}if (pNode.Checked ){//获取选中节点值
lstChapterIds.Add(pNode.Name);}else{if (lstChapterIds.Contains(pNode.Name)){lstChapterIds.Remove(pNode.Name);}}SetParentNode(pNode, flag);}}/// /// 设置子节点/// /// 当前节点/// 状态private void SetChildNode(TreeNode node, bool state){TreeNodeCollection tncNodes = node.Nodes;if (tncNodes.Count>0){foreach (TreeNode currNode in tncNodes){currNode.Checked = state;if (currNode.Checked){//获取选中节点值
lstChapterIds.Add(currNode.Name);}else{if (lstChapterIds.Contains(currNode.Name)){lstChapterIds.Remove(currNode.Name);}}SetChildNode(currNode, state);}}}
View Code

 

程序只开一个:program.cs

 

bool createdNew = false;System.Threading.Mutex instance = new System.Threading.Mutex(true, Application.ProductName, out createdNew);if (createdNew){//...........code
instance.ReleaseMutex();}else{MessageBox.Show("该程序已经在运行!", Application.ProductName,MessageBoxButtons.OK, MessageBoxIcon.Exclamation);Application.Exit();}

View Code

 

委托 不同线程间访问控件

private delegate void UploadPro(int mProgre);private event UploadPro UploadProEvent;UploadProEvent +=ResourceManage_UploadProEvent;void ResourceManage_UploadProEvent(int mProgree)
{
//......

}
var thread = new Thread(new ThreadStart(method));
thread.Start();

View Code

this.Invoke(UploadProEvent,currentPro);

 

解压缩 文件

ZipInputStream inputStream = new ZipInputStream(File.OpenRead(strFilePath));
ZipEntry theEntry;
//读取文件名List<string> fileNameList &#61; new List<string>();while ((theEntry &#61; inputStream.GetNextEntry()) !&#61; null){totalSize &#43;&#61; theEntry.UncompressedSize;string templateName &#61; theEntry.FileName;string fileName &#61; Path.GetFileName(templateName);if (!string.IsNullOrEmpty(fileName))fileNameList.Add(fileName);}inputStream.Close();#region 解压文件inputStream &#61; new ZipInputStream(File.OpenRead(filePath));//long totalSize &#61; inputStream.Length;long currentSize &#61; 0;int currentPro &#61; 0;ZipEntry theEntry;ZipFile zf &#61; ZipFile.Read(filePath);//以文件流来解压所有文件&#xff0c;同时计算进度while ((theEntry &#61; inputStream.GetNextEntry()) !&#61; null){//totalSize &#43;&#61; theEntry.UncompressedSize;//long totalSize &#61; theEntry.UncompressedSize;//destPath &#43;&#61; "/";//string templateName &#61; theEntry.FileName;//string fileName &#61; Path.GetFileName(templateName);////string dir &#61; Path.GetDirectoryName(templateName);//string dir &#61; templateName;//if (!dir.Contains("\\") && string.IsNullOrEmpty(fileName))//{// continue;//} ////截取目录文件夹//if (dir.Contains("\\"))// dir &#61; dir.Substring(dir.IndexOf("\\") &#43; 1, dir.Length - dir.IndexOf("\\") - 1);//if (templateName.Length &#61;&#61; (dir &#43; "/" &#43; fileName).Length) dir &#61; "";////theEntry.IsDirectory 是否目录//string path &#61; Path.GetDirectoryName(destPath) &#43; "/" &#43; dir &#43; "/";////Path.GetDirectoryName(baseDir) &#43; "/";////if (!Directory.Exists(path)) // Directory.CreateDirectory(path);string strFilePath &#61; string.Empty;string templateName &#61; theEntry.FileName;if (!templateName.Contains("\\")){//文件strFilePath &#61; destPath &#43; "\\" &#43; theEntry.FileName;}else{//文件夹里文件strFilePath &#61; destPath &#43; theEntry.FileName;}if (!Directory.Exists(Path.GetDirectoryName(strFilePath))){Directory.CreateDirectory(Path.GetDirectoryName(strFilePath));}string fileName &#61; Path.GetFileName(templateName);if (fileName !&#61; String.Empty){FileStream streamWriter &#61; File.OpenWrite(strFilePath); //解压文件到指定的目录 int size &#61; 0;byte[] data &#61; new byte[2048];try{while (true){size &#61; inputStream.Read(data, 0, data.Length);if (size > 0){streamWriter.Write(data, 0, size);currentSize &#43;&#61; size;}else{break;}currentPro &#61; Convert.ToInt32(100 * currentSize / totalSize);this.Invoke(UploadProEvent,currentPro);}}catch (Exception ex){LogHelper.Error(this.GetType(), ex);this.Invoke(UploadProEvent, -1); //-1 导入失败
}finally{streamWriter.Close();}}}inputStream.Close();#endregion

View Code

 

检查指导文件盘符&#xff0c;获取空间大盘符

 

///

/// 检查指导盘符剩余空间/// /// /// public static long GetHardDiskFreeSpace(string str_HardDiskName){if (string.IsNullOrEmpty(str_HardDiskName)) return 0;long freeSpace &#61; new long();System.IO.DriveInfo[] drives &#61; System.IO.DriveInfo.GetDrives();foreach (System.IO.DriveInfo drive in drives){if (drive.Name &#61;&#61; str_HardDiskName){freeSpace &#61; drive.TotalFreeSpace;}}return freeSpace;}/// /// 找出当前客户端剩余空间最大盘符/// /// public static Dictionary<string, long> GetSystemDirtory(){Dictionary<string, long> freeSpace &#61; new Dictionary<string, long>();DriveInfo[] drives &#61; DriveInfo.GetDrives();foreach (DriveInfo drive in drives){if (drive.DriveType &#61;&#61; DriveType.Fixed)freeSpace.Add(drive.Name, drive.TotalFreeSpace);}string hardDiskName &#61; freeSpace.ToArray().Max(x &#61;> x.Key);long hardDiskSize &#61; freeSpace.ToArray().Max(x &#61;> x.Value);freeSpace.Clear();freeSpace.Add(hardDiskName, hardDiskSize);return freeSpace;}
View Code

 

获取MAC地址

///

/// 获取网卡MAC地址/// /// public static string GetNetCardMAC(){try{string stringMAC &#61; "";ManagementClass MC &#61; new ManagementClass("Win32_NetworkAdapterConfiguration");ManagementObjectCollection MOC &#61; MC.GetInstances();foreach (ManagementObject MO in MOC){if ((bool)MO["IPEnabled"] &#61;&#61; true){stringMAC &#43;&#61; MO["MACAddress"].ToString();}}return stringMAC;}catch{return "";}}
View Code

 

获取远程文件信息

///

/// 获取远程文件信息/// /// /// public static RemoteFileInfo GetFileInfo(string url){RemoteFileInfo result &#61; new RemoteFileInfo();try{GC.Collect();HttpWebRequest request &#61; (HttpWebRequest)WebRequest.Create(url);HttpWebResponse response &#61; (HttpWebResponse)request.GetResponse();result.MimeType &#61; response.ContentType;result.LastModified &#61; response.LastModified;result.FileSize &#61; response.ContentLength;result.AcceptRanges &#61; String.Compare(response.Headers["Accept-Ranges"], "bytes", true) &#61;&#61; 0;//关闭连接
response.Close();request.KeepAlive &#61; false;}catch (Exception ex){throw;}return result;}
View Code

 

错误日志

#region 日志方法public void LogTest(string str){string path &#61; System.IO.Directory.GetCurrentDirectory() &#43; "\\log\\";if (!Directory.Exists(path)){DirectoryInfo directorylnfo &#61; new DirectoryInfo(path);directorylnfo.Create();}string dt &#61; "\r\n时间&#xff1a;" &#43; DateTime.Now.ToString("yyyymmddhhmmss") &#43; "\r\n内容&#xff1a;" &#43; str;int len &#61; dt.Length;byte[] inputByts &#61; new byte[len];inputByts &#61; Encoding.GetEncoding("utf-8").GetBytes(dt);System.IO.FileStream fs &#61; new System.IO.FileStream(path &#43; "log.txt", System.IO.FileMode.OpenOrCreate);fs.Seek(0, System.IO.SeekOrigin.End);fs.Write(inputByts, 0, inputByts.Length);fs.Close();//关闭流
} #endregion

View Code

 

///

/// 错误日志/// /// public static void WriteLog(Exception ex){string logPath &#61; GetResDir() &#43; "/log";string message &#61; string.Format("\r\n\r\n异常时间&#xff1a;{0} \r\n错误源&#xff1a;{1} \r\n异常信息&#xff1a;{2}",DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss,fff"), ex.Source, ex.Message);File.AppendAllText(logPath &#43; DateTime.Now.ToString("yyyy.MM.dd") &#43; ".log", message, Encoding.UTF8);}
View Code

 

启动停止服务

 

///

/// 启动服务sc.DisplayName/// /// public static void StartService(string serverName){if (string.IsNullOrEmpty(serverName)) return;ServiceController sc &#61; new ServiceController(serverName);if (sc.DisplayName !&#61; null){if (sc.Status &#61;&#61; ServiceControllerStatus.Stopped) sc.Start();}}/// /// 停止服务/// /// public static void StopService(string serverName){if (string.IsNullOrEmpty(serverName)) return;ServiceController sc &#61; new ServiceController(serverName);if (sc.DisplayName !&#61; null) {if (sc.Status &#61;&#61; ServiceControllerStatus.Running) sc.Stop();}}
View Code

 

插入修改表数据

public string InsertORupdateData(List _list, string dtName,string columnName){StringBuilder sbInsert &#61; new StringBuilder();ArrayList list &#61; new ArrayList();try{string sqlstr &#61; "";if (_list !&#61; null && _list.Count > 0){System.Reflection.PropertyInfo[] p &#61; _list[0].GetType().GetProperties();int length &#61; 0;string values &#61; "";for (int i &#61; 0; i <_list.Count; i&#43;&#43;){string sbUpdateSql &#61; "";int count &#61; 0;string upwh &#61; "";length &#61; 0;//通过反射获取list中的字段 foreach (System.Reflection.PropertyInfo pi in p){string cName &#61; pi.Name;string cValue &#61; (pi.GetValue(_list[i], null) &#61;&#61; null? "": (pi.GetValue(_list[i], null)).ToString().Replace("&#39;", "")); //替换 &#39;语法错误的if (cName.ToLower() &#61;&#61; columnName.ToLower()){string sql &#61; "select count(0) from " &#43; dtName &#43; " where " &#43; columnName &#43; "&#61;&#39;"&#43;cValue&#43;"&#39;";upwh &#61; " where " &#43; columnName &#43; "&#61;&#39;" &#43; cValue &#43; "&#39;";count &#61; ExcelHelper.GetScalar(sql);}if (length &#61;&#61; 0){sqlstr &#61; "INSERT INTO " &#43; dtName &#43; " (";values &#61; "(";sbUpdateSql&#43;&#61;"update " &#43; dtName &#43; " set ";}length &#43;&#61; 1;if (length < p.Length){sbUpdateSql &#43;&#61; cName &#43; "&#61; &#39;" &#43; cValue &#43;"&#39;,";sqlstr &#43;&#61; cName &#43; ",";values &#43;&#61; "&#39;" &#43; cValue &#43; "&#39;,";}else{sbUpdateSql &#43;&#61; cName &#43; "&#61; &#39;" &#43; cValue &#43; "&#39;";sqlstr &#43;&#61; cName &#43; ") Values";values &#43;&#61; "&#39;" &#43; cValue &#43; "&#39;); ";if (count > 0){sqlstr &#61; sbUpdateSql &#43; upwh;values &#61; "";}}}sqlstr &#43;&#61; values;list.Add(sqlstr);}}//for (int i &#61; 0; i //{// ArrayList arrList &#61; new ArrayList();// arrList.Add(list[i]);// var result &#61; AccessDbHelper.ExecuteSqlTran(arrList);//}//string str &#61; string.Join("", list.ToArray());var result &#61; AccessDbHelper.ExecuteSqlTran(list);return "success";}catch (Exception err){LogTest(err.ToString());return err.ToString();}}

View Code

 

转:https://www.cnblogs.com/love201314/p/6307593.html



推荐阅读
  • 本文讨论了Kotlin中扩展函数的一些惯用用法以及其合理性。作者认为在某些情况下,定义扩展函数没有意义,但官方的编码约定支持这种方式。文章还介绍了在类之外定义扩展函数的具体用法,并讨论了避免使用扩展函数的边缘情况。作者提出了对于扩展函数的合理性的质疑,并给出了自己的反驳。最后,文章强调了在编写Kotlin代码时可以自由地使用扩展函数的重要性。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 第四章高阶函数(参数传递、高阶函数、lambda表达式)(python进阶)的讲解和应用
    本文主要讲解了第四章高阶函数(参数传递、高阶函数、lambda表达式)的相关知识,包括函数参数传递机制和赋值机制、引用传递的概念和应用、默认参数的定义和使用等内容。同时介绍了高阶函数和lambda表达式的概念,并给出了一些实例代码进行演示。对于想要进一步提升python编程能力的读者来说,本文将是一个不错的学习资料。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 突破MIUI14限制,自定义胶囊图标、大图标样式,支持任意APP
    本文介绍了如何突破MIUI14的限制,实现自定义胶囊图标和大图标样式,并支持任意APP。需要一定的动手能力和主题设计师账号权限或者会主题pojie。详细步骤包括应用包名获取、素材制作和封包获取等。 ... [详细]
  • Java程序设计第4周学习总结及注释应用的开发笔记
    本文由编程笔记#小编为大家整理,主要介绍了201521123087《Java程序设计》第4周学习总结相关的知识,包括注释的应用和使用类的注释与方法的注释进行注释的方法,并在Eclipse中查看。摘要内容大约为150字,提供了一定的参考价值。 ... [详细]
  • Week04面向对象设计与继承学习总结及作业要求
    本文总结了Week04面向对象设计与继承的重要知识点,包括对象、类、封装性、静态属性、静态方法、重载、继承和多态等。同时,还介绍了私有构造函数在类外部无法被调用、static不能访问非静态属性以及该类实例可以共享类里的static属性等内容。此外,还提到了作业要求,包括讲述一个在网上商城购物或在班级博客进行学习的故事,并使用Markdown的加粗标记和语句块标记标注关键名词和动词。最后,还提到了参考资料中关于UML类图如何绘制的范例。 ... [详细]
  • 解决.net项目中未注册“microsoft.ACE.oledb.12.0”提供程序的方法
    在开发.net项目中,通过microsoft.ACE.oledb读取excel文件信息时,报错“未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序”。本文提供了解决这个问题的方法,包括错误描述和代码示例。通过注册提供程序和修改连接字符串,可以成功读取excel文件信息。 ... [详细]
author-avatar
单身男人adgjm
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有