摘要:
前几天,做个小程序时遇到的问题,在百度上搜索了很久,没有发现好的解决方案,在英文网站上立刻搜到办法,看来还是国外的资源要全面一些,只是Google经常访问不正常,没办法啊。“C#如何获取快捷方式指向的目标文件”,这个问题在百度上搜索的大多数结果是打开快捷方式文件,把快捷方式文件按字节读入指数组中,然...
阅读全文
posted @ 2015-01-13 17:15
jevan
阅读(4831)
推荐(1)
摘要:
近来项目中有需要用到一个技术:使用C#操控快捷方式,包含创建和读取等。现整理一下实现方式,分享给大家。第一步 创建一个项目无需废话,跳过。第二步 引用COM组件右键“引用”,“添加引用”,选择“COM组件”,找到“Windows Script Host Object Model”,然后确定。第三步 ...
阅读全文
posted @ 2015-01-13 17:12
jevan
阅读(2376)
推荐(0)
摘要:
要检测文件被那个进程占用,需要使用微软提供的工具Handle.exe,这里有微软提供的下载我们可以在c#中调用Handle.exe 来检测到底哪个进程占用了文件string fileName = @"c:\aaa.doc";//要检查被那个进程占用的文件Process tool = new Proc...
阅读全文
posted @ 2015-01-13 17:07
jevan
阅读(8019)
推荐(2)
摘要:
一位朋友碰到了一个WinForm的问题,在网上搜了一通,没找到能解决问题的方案,正好我以前以碰到过,在这里把解决方案呈上,以便有遇到此问题的朋友能有帮助。问题是这样的,当启用了虚拟样式后,设置好的TeeView 的图标就不见了,代码如下:Application.EnableVisualStyles(...
阅读全文
posted @ 2015-01-08 09:59
jevan
阅读(645)
推荐(0)
摘要:
以前感觉用JQuery来设置自定义属性很方便,现在没有用JQuery,要用原生的JavaScript来操作自定义属性。Jquery操作自定义属性的方法,很简洁:Js代码$("#test").attr("test","aaa")//设置$("#test").removeAttr("test")//删除...
阅读全文
posted @ 2014-06-29 22:45
jevan
阅读(23376)
推荐(0)
摘要:
多线程无论您是为具有单个处理器的计算机还是为具有多个处理器的计算机进行开发,您都希望应用程序为用户提供最好的响应性能,即使应用程序当前正在完成其 他工作。要使应用程序能够快速响应用户操作,同时在用户事件之间或者甚至在用户事件期间利用处理器,最强大的方式之一是使用多线程技术。多线程:线程是程序中一个单一的顺序控制流程.在单个程序中同时运行多个线程完成不同的工作,称为多线程。如果某个线程进行一次长延迟操作, 处理器就切换到另一个线程执行。这样,多个线程的并行(并发)执行隐藏了长延迟,提高了处理器资源利用率,从而提高了整体性能。多线程是为了同步完成多项 任务,不是为了提高运行效率,而是为了提高资源使
阅读全文
posted @ 2013-10-15 17:28
jevan
阅读(479)
推荐(0)
摘要:
“方法”是包含一系列语句的代码块。 程序通过“调用”方法并指定所需的任何方法参数来执行语句。 在 C# 中,每个执行指令 都是在方法的上下文中执行的。最近在写一个反射调用时,需要通过反射来调用方法。想写一个通用的方法调用的通用函数,这就需要将方法各种形式考虑在内。在这里只是对C#4.0的方法进行一次简单总结,也希望给大家一个清晰的认识。方法模板:可访问性 修饰符 返回值 方法名(参数列表){...}可访问性: private protected internal public方法修饰符: static abstract virtual/override 等返回值: 某种类型或无返回值方法名:m
阅读全文
posted @ 2013-10-15 16:56
jevan
阅读(511)
推荐(0)
摘要:
最近几日用到DevExpress的Grid,其中又用到Master-Detail。发现点击Detail中的行,无法获取所属的Master rowHandle,查阅了资料才知道,原来一个属性就可以了。假设GridControl下有gridview1,gridview2,其中gridview1是master,gridview2是child。那么语句如下:private void gridView2_GotFocus(object sender, EventArgs e){//MessageBox.Show("ddd");DevExpress.XtraGrid.Views.Gri
阅读全文
posted @ 2012-08-02 01:14
jevan
阅读(1326)
推荐(0)
摘要:
Thinkpad的Medem驱动通过System Update升级后给安装了个NetWaiting,看了一下,没什么用,想卸载掉,结果发现“添加/删除程序”中居然没有卸载项,够LM的!搜索了一下,有人建议用专业的卸载软件卸载,不过从经验上看这种通过第三方的卸载一般卸不干净,还有会有后遗症。感觉上Lenovo不应该干这种没RP的事情,于是打开系统的Uninstall登记项搜索。步骤:1.运行RegEdit,展开到HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall2.查找,输入“NetWaiting”搜索3.
阅读全文
posted @ 2012-06-30 02:16
jevan
阅读(1971)
推荐(0)
摘要:
if (System.Diagnostics.Debugger.IsAttached) { this.textBox1.Text = "debug"; } else { this.textBox1.Text = "NOdebug"; }
阅读全文
posted @ 2012-06-27 01:06
jevan
阅读(295)
推荐(0)
摘要:
话说有了WebBrowser类,终于不用自己手动封装SHDocVw的AxWebBrowser这个ActiveX控件了。这个类如果仅仅作为一个和IE一模一样浏览器,那就太没意思了(还不如直接用IE呢)。那么,无论我们是想做一个“定制版IE”,还是希望利用HTML来做用户界面(指WinApp而非WebApp。许多单机软件,包括Windows的帮助支持中心,都是HTML做的),都少不了WindowsForm和包含在WebBrowser中的Web页面的交互。本文将通过几个实际的例子,初步介绍一下WinForm和WebBrowser所包含的Web页面之间的交互。 下面的代码假设你已经建立了一个Windo
阅读全文
posted @ 2012-06-26 23:23
jevan
阅读(391)
推荐(0)
摘要:
C#启动外部程序的几种方法: 1.启动外部程序,不等待其退出。 2.启动外部程序,等待其退出。 3.启动外部程序,无限等待其退出。 4.启动外部程序,通过事件监视其退出。 // using System.Diagnostics;private string appName = "calc.exe";/// <summary>/// 1. 启动外部程序,不等待其退出/// </summary>private void button1_Click(object sender, EventArgs e){ Process.Start(appName); M
阅读全文
posted @ 2012-06-26 23:13
jevan
阅读(351)
推荐(0)
摘要:
前年还在开发.NET产品,我那时候编写一个C#脚本解释引擎,遇到一个问题是,Type.GetType()方法无法获取尚未装载类型。这些天,在阅读一些相关的代码时,得知了一种较为完整的方法,共享如下:internal static Type FindTypeInCurrentDomain(string typeName) { Type type = null; //如果该类型已经装载 type = Type.GetType(typeName); if (type != null) { return type; }...
阅读全文
posted @ 2012-06-26 23:13
jevan
阅读(273)
推荐(0)
摘要:
C#只允许启动一个WinFrom进程[STAThread]public static void Main(){ bool ret; System.Threading.Mutex mutex = new System.Threading.Mutex(true, Application.ProductName, out ret); if (ret) { System.Windows.Forms.Application.EnableVisualStyles(); //这两行实现 XP 可视风格 System.Windows.For...
阅读全文
posted @ 2012-06-26 23:09
jevan
阅读(2457)
推荐(1)
摘要:
我们经常有一些用控制台实现的简单应用,这种应用一般都是一步一步“向导”式执行,在每一步上收集用户的输入,最后得到程序执行的结果。但有些用户可能不喜欢用键盘操作的命令行界面,还是愿意用鼠标点点按钮的Windows窗体。另外控制台程序的参数输入是按顺序执行,到了下一步就不能再更改前面的输入了,而在Windows窗体上我们可以等用户把所有需要的参数都已录入完成并进行了验证后,再一次性提交执行。要实现这两种需求,一个好的办法就是把控制台程序“嵌入”到WinForm中执行,这样既能给用户以良好的使用体验,又能复用已有的控制台程序。 所谓“嵌入”执行,是指写一个WinForm程序去调用控制台程序,并向控制
阅读全文
posted @ 2012-06-26 23:07
jevan
阅读(2414)
推荐(0)
摘要:
c#中的Process类可方便的调用外部程序,所以我们可以通过调用cmd.exe程序 加入参数"/c"+要执行的命令来执行一个dos命令 (/c代表执行参数指定的命令后关闭cmd.exe/k参数则不关闭cmd.exe) private string RunCmd(string command){ //實例一個Process類,啟動一個獨立進程 Process p = new Process(); //Process類有一個StartInfo屬性,這個是ProcessStartInfo類, //包括了一些屬性和方法,下面我們用到了他的幾個屬性: p.StartInf...
阅读全文
posted @ 2012-06-26 23:05
jevan
阅读(443)
推荐(0)
摘要:
using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.Data;using System.Runtime.InteropServices;namespace WinFormSendMsg{ partial class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.TextBox textB...
阅读全文
posted @ 2012-06-26 23:04
jevan
阅读(403)
推荐(0)
摘要:
笔者曾在一个项目的实施过程中,需要使用WM_COPYDATA在本地机器的两个进程间传输数据。在C++中实现非常简单,但在C#中实现时却出现了麻烦。由于没有指针,使用COPYDATASTRUCT结构传递数据时,无法正确传递lpData。从网上搜寻文档,找到一个例子,是将COPYDATASTRUCT结构的lpData声明为string。这样虽然能传递字符串,但不能传递随意的二进制数据。 偶然地,我查阅MSDN帮助时,发现了Marshal类。该类概述描述道:提供了一个方法集,这些方法用于分配非托管内存、复制非托管内存块、将托管类型转换为非托管类型,此外还提供了在与非托管代码交互时使用的其他杂项方法。
阅读全文
posted @ 2012-06-26 23:01
jevan
阅读(4816)
推荐(0)
摘要:
最近项目中需要在两个应用程序之间通讯,这里的两个程序是在一台机器上,看了csdn上的一篇文章《如何在C#用WM_COPYDATA消息来实现两个进程之间传递数据》,原理是讲清楚了,但使起来很不爽,决定自己封装一下,满足项目需要就行。 注意这里发送消息的函数: public static void SendMessage(string destProcessName, int msgID, string strMsg);只能发送一个msgID和一个strMsg,接收方只接收了strMsg,我的项目中已经够用了,你如果需要读msgID,还需要改一下。客户端代码请参考csdn上的原文自己写吧。 进程之
阅读全文
posted @ 2012-06-26 22:59
jevan
阅读(801)
推荐(0)
摘要:
1.在工程的引用中添对DevExpress.OfficeSkins的引用2.在Program.cs中添以下两行代码:DevExpress.UserSkins.OfficeSkins.Register();DevExpress.Skins.SkinManager.EnableFormSkins();3.在窗体上拖一个imageComboBoxEdit控件,控件name为imageComboBoxEdit14.在窗体的load事件中添加以下代码// 给imageComboBoxEdit添加事伯imageComboBoxEdit1.SelectedIndexChanged += new EventH
阅读全文
posted @ 2012-06-26 10:53
jevan
阅读(1943)
推荐(0)
摘要:
树的2个事件代码如下,通过节点的tag判断是否禁用节点前的复选框.树的节点加载时设置要禁用的节点tag为-1,不禁用的则设为相关的值private void treeListPer_CustomDrawNodeCheckBox(object sender, DevExpress.XtraTreeList.CustomDrawNodeCheckBoxEventArgs e) { //TreeListNode listNode = sender as TreeListNode; if (e.Node.Tag.ToString()=="-1"...
阅读全文
posted @ 2012-06-26 10:03
jevan
阅读(1632)
推荐(0)
摘要:
CheckBoxes 为真代码如下using System.Runtime.InteropServices;#region 树的复选框隐藏 private const int TVIF_STATE = 0x8; private const int TVIS_STATEIMAGEMASK = 0xF000; private const int TV_FIRST = 0x1100; private const int TVM_SETITEM = TV_FIRST + 63; [StructLayout(LayoutKind.Se...
阅读全文
posted @ 2012-06-26 09:59
jevan
阅读(765)
推荐(0)
摘要:
最近修改了一下.可以更方便的用在各个窗体上了代码也简洁很多.直接引用一下就能使用不过只处理了窗口的左上右三个方向 .下边没处理/// <summary> /// 窗口停靠隐藏类 /// 使用方法 /// private FormDock formDock = null; /// formDock = new FormDock(this,300); /// </summary> public class FormDock { #region 自定义声明 /// <summary> /// 定义计时器 ...
阅读全文
posted @ 2012-06-26 09:44
jevan
阅读(2254)
推荐(0)
摘要:
/// <summary> /// 加密/解密类 /// </summary> public class EncAndDec { //加密/解密钥匙 const string KEY_64 = "jzw7tz8g";//注意了,是8个字符,64位 const string IV_64 = "tvbzn9i7";//注意了,是8个字符,64位 const string ClientLocal_KEY_64 = "xinxinwb"; const string ClientLocal_IV...
阅读全文
posted @ 2012-06-26 09:38
jevan
阅读(3933)
推荐(0)
摘要:
要使用一个Dev下拉框控件的ToolTip功能,找了半天没有ToolTip这个属性,而是换成了SuperTip属性,而且用法还和普通控件的用法不太一样我要实现像图片中效果,当鼠标放在毕业办理批次上时会显示文本框里的内容SuperTip可以在设计时直接写上,也可以用代码实现SuuperTip分为Title,Contents,Footerd三个部分,每个部分中间还可以用分割线分开实现上面的效果代码如下://声明一个SuerToolTipDevExpress.Utils.SuperToolTip graduationBatchSuperToolTip = new DevExpress.Utils.S
阅读全文
posted @ 2012-06-26 09:36
jevan
阅读(3393)
推荐(0)
摘要:
网上的那个很早以前就发布出来了...觉得很不好用是用系统api做的我改了下.思路大体上还是差不多窗口改变位置时改变一下停靠类型然后时钟事件判断鼠标是否在窗口内.如果窗口隐藏且鼠标在窗体中,则显示,反之则隐藏具体看代码吧.不是很完美(没有更好的去做时钟的停止启动优化)....反正功能是实现了using System;using System.Collections.Generic;using System.ComponentModel;using System.Drawing;using System.Data;using System.Text;using System.Windows.For
阅读全文
posted @ 2012-04-13 15:26
jevan
阅读(9304)
推荐(0)
摘要:
VB.net >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Private tabArea As Rectangle Private tabTextArea As RectangleF Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As Syste
阅读全文
posted @ 2012-03-05 10:50
jevan
阅读(2390)
推荐(0)
摘要:
private bool HaveOpened(Form 父窗体, string 子窗体Name) { //查看窗口是否已经被打开 bool bReturn = true; for (int i = 0; i < 父窗体.MdiChildren.Length; i++) { if (父窗体.MdiChildren[i].Name == 子窗体Name) { 父窗体.MdiChildren[i].B...
阅读全文
posted @ 2012-03-05 10:49
jevan
阅读(6354)
推荐(0)
摘要:
“用MDI方式打开一个子窗口体后,总是不能最大化显示,明明子窗口体的WindowState设置为Maximized?”,相信有很多人会遇到这的样问题,请按下面的方法设置即可使MDI子窗体最大化:1、把父窗体的IsMdiContainer设置为True;2、把子窗体的WindowState设置为Normal;3、在父窗体中用下面的方法打开子窗体:private void menuItemsMdiForm_Click(object sender, EventArgs e){ MyChildForm childForm = new MyChildForm(); childForm ....
阅读全文
posted @ 2012-03-05 10:48
jevan
阅读(1995)
推荐(0)
摘要:
函数private void GetSelectedTreeNode(TreeNodeCollection nodes, List<TreeNode> selectedNodes) { foreach (TreeNode node in nodes) { if (node.Checked) { selectedNodes.Add(node); } GetSelectedTreeNo...
阅读全文
posted @ 2012-03-02 00:49
jevan
阅读(1990)
推荐(0)
posted @ 2012-03-02 00:47
jevan
阅读(42)
推荐(0)
摘要:
在程序设计过程中,我们经常需要用到不同的随机数序列,于是我们写下了这样的程序://TickCount.CSpublicclassMainClass...{publicstaticvoidMain()...{for(inti=0;i<10;i++)//生成10个随机序列...{CreateRand();}}publicstaticvoidCreateRand()...{Randomrandom=newRandom();for(inti=0;i<6;i++)//6个数字的随机序列Console.Write(string.Format("{0}",random.Nex
阅读全文
posted @ 2012-02-23 10:46
jevan
阅读(474)
推荐(0)
摘要:
防止重复提交,通用的思路,就是当用户点击提交按钮后,在浏览器中用JS将按钮disable掉,从而阻止用户继续点击该按钮,实现防止重复提交的目的。网上防止重复提交的文章已经不少了,为啥我还要写呢,显然我不是吃饱了撑的。。。最近一个客户,老抱怨每个月总有几条重复的业务数据;但创建该业务数据的页面,我们已经应用了常规的防重复提交技术,为啥还这样呢……1. 常规防重复提交 1: <asp:Button runat="server" ID="btnPostBack1" Text="按我1" UseSubmitBehavior="
阅读全文
posted @ 2012-02-23 10:44
jevan
阅读(641)
推荐(0)
摘要:
1. ModBus的 Client/Server模型2. 数据包格式及MBAP header (MODBUS Application Protocol header)3. 大小端转换4. 事务标识和缓冲清理5. 示例代码0. MODBUS MESSAGING ON TCP/IP IMPLEMENTATION GUIDE 下载地址:http://www.modbus.org/docs/Modbus_Messaging_Implementation_Guide_V1_0b.pdf1. ModBus的 Client/Server模型 Client与Server之间有两种通讯方式:一种是TCP/IP,
阅读全文
posted @ 2012-02-23 10:40
jevan
阅读(1341)
推荐(0)
摘要:
本文将谈谈C#项目实例中读取并修改App.config文件,AppConfig最重要的功能就是,它将命令行选项和配置文件选项统一到一种数据结构中。尽管这会导致复杂化。C#项目是指一系列独特的、复杂的并相互关联的活动,这些活动有着一个明确的目标或目的,必须在特定的时间、预算、资源限定内,依据规范完成。项目参数包括项目范围、质量、成本、时间、资源。1.向C#项目实例中的项目添加app.config文件:右击C#项目实例中项目名称,选择“添加”→“添加新建项”,在出现的“添加新项”对话框中,选择“添加应用程序配置文件”;如果项目以前没有配置文件,则默认的文件名称为“app.config”,单击“确定
阅读全文
posted @ 2012-02-23 10:29
jevan
阅读(522)
推荐(0)
摘要:
1、mount语法:mount(type, location, mount_point);说明:type="MTD" location="<partition>" 挂载yaffs2文件系统分区;type="vfat" location="/dev/block/<whatever>" 挂载设备。例如:mount("MTD", "system", "/system");挂载system分区,设置返回指针"/system”mou
阅读全文
posted @ 2011-12-30 10:57
jevan
阅读(3923)
推荐(0)
摘要:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content-Type"content="text/html; charset=utf-8&q
阅读全文
posted @ 2011-12-21 11:50
jevan
阅读(1776)
推荐(0)
摘要:
三层体系结构的概念用户界面表示层(USL)业务逻辑层(BLL)数据访问层(DAL)BLL将USL与DAL隔开了,并且加入了业务规则各层的作用1:数据数据访问层:主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务.2:业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。3:表示层:主要表示WEB方式,也可以表示成WINFORM方式,WEB方式也可以表现成:aspx, 如果逻辑层相当强大和完善,无论表现层如
阅读全文
posted @ 2011-12-21 11:49
jevan
阅读(1803)
推荐(0)
摘要:
Web.config 文件通常包括根据应用程序的运行环境而必须不同的设置。例如,在部署 Web.config 文件时,您可能必须更改数据库连接字符串或禁用调试。对于 Web 应用程序项目,ASP.NET 提供了一些工具,用于自动完成在部署这些项目时更改(转换)Web.config 文件的过程。对于要部署到的每个环境,您将创建一个转换文件,该文件仅指定原始 Web.config 文件和适用于该环境的已部署 Web.config 文件之间的差异。转换文件是一个 XML 文件,该文件指定在部署 Web.config 文件时应如何更改该文件。转换操作通过使用在XML-Document-Transfor
阅读全文
posted @ 2011-12-21 11:48
jevan
阅读(513)
推荐(0)
摘要:
/// <head>///<function>/// 存储类(存储UserInfo信息)///</function>///<description>/// 用Cache存储用户信息/// 在指定间隔(TimeOut)内取,则可以从Cache中取,/// 如果超出存储时间,则从数据库取用户信息数据/// 作為所有用户信息的存儲類.///</description>///<author>///<name>ChengKing</name> ///</author>/// </head&g
阅读全文
posted @ 2011-12-21 11:42
jevan
阅读(656)
推荐(0)