热门标签 | 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



推荐阅读
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • 本文介绍了UVALive6575题目Odd and Even Zeroes的解法,使用了数位dp和找规律的方法。阶乘的定义和性质被介绍,并给出了一些例子。其中,部分阶乘的尾零个数为奇数,部分为偶数。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • springmvc学习笔记(十):控制器业务方法中通过注解实现封装Javabean接收表单提交的数据
    本文介绍了在springmvc学习笔记系列的第十篇中,控制器的业务方法中如何通过注解实现封装Javabean来接收表单提交的数据。同时还讨论了当有多个注册表单且字段完全相同时,如何将其交给同一个控制器处理。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 本文讨论了Kotlin中扩展函数的一些惯用用法以及其合理性。作者认为在某些情况下,定义扩展函数没有意义,但官方的编码约定支持这种方式。文章还介绍了在类之外定义扩展函数的具体用法,并讨论了避免使用扩展函数的边缘情况。作者提出了对于扩展函数的合理性的质疑,并给出了自己的反驳。最后,文章强调了在编写Kotlin代码时可以自由地使用扩展函数的重要性。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 学习Java异常处理之throws之抛出并捕获异常(9)
    任务描述本关任务:在main方法之外创建任意一个方法接收给定的两个字符串,把第二个字符串的长度减1生成一个整数值,输出第一个字符串长度是 ... [详细]
  • 重入锁(ReentrantLock)学习及实现原理
    本文介绍了重入锁(ReentrantLock)的学习及实现原理。在学习synchronized的基础上,重入锁提供了更多的灵活性和功能。文章详细介绍了重入锁的特性、使用方法和实现原理,并提供了类图和测试代码供读者参考。重入锁支持重入和公平与非公平两种实现方式,通过对比和分析,读者可以更好地理解和应用重入锁。 ... [详细]
  • 本文介绍了一种在PHP中对二维数组根据某个字段进行排序的方法,以年龄字段为例,按照倒序的方式进行排序,并给出了具体的代码实现。 ... [详细]
  • Hibernate延迟加载深入分析-集合属性的延迟加载策略
    本文深入分析了Hibernate延迟加载的机制,特别是集合属性的延迟加载策略。通过延迟加载,可以降低系统的内存开销,提高Hibernate的运行性能。对于集合属性,推荐使用延迟加载策略,即在系统需要使用集合属性时才从数据库装载关联的数据,避免一次加载所有集合属性导致性能下降。 ... [详细]
  • 本文介绍了在实现了System.Collections.Generic.IDictionary接口的泛型字典类中如何使用foreach循环来枚举字典中的键值对。同时还讨论了非泛型字典类和泛型字典类在foreach循环中使用的不同类型,以及使用KeyValuePair类型在foreach循环中枚举泛型字典类的优势。阅读本文可以帮助您更好地理解泛型字典类的使用和性能优化。 ... [详细]
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社区 版权所有