Loading

随笔分类 -  C#

摘要:“方法”是包含一系列语句的代码块。 程序通过“调用”方法并指定所需的任何方法参数来执行语句。 在 C# 中,每个执行指令 都是在方法的上下文中执行的。最近在写一个反射调用时,需要通过反射来调用方法。想写一个通用的方法调用的通用函数,这就需要将方法各种形式考虑在内。在这里只是对C#4.0的方法进行一次简单总结,也希望给大家一个清晰的认识。方法模板:可访问性 修饰符 返回值 方法名(参数列表){...}可访问性: private protected internal public方法修饰符: static abstract virtual/override 等返回值: 某种类型或无返回值方法名:m 阅读全文
posted @ 2013-10-15 16:56 jevan 阅读(515) 评论(0) 推荐(0)
摘要:if (System.Diagnostics.Debugger.IsAttached) { this.textBox1.Text = "debug"; } else { this.textBox1.Text = "NOdebug"; } 阅读全文
posted @ 2012-06-27 01:06 jevan 阅读(299) 评论(0) 推荐(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 阅读(394) 评论(0) 推荐(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 阅读(355) 评论(0) 推荐(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 阅读(277) 评论(0) 推荐(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 阅读(2459) 评论(0) 推荐(1)
摘要:我们经常有一些用控制台实现的简单应用,这种应用一般都是一步一步“向导”式执行,在每一步上收集用户的输入,最后得到程序执行的结果。但有些用户可能不喜欢用键盘操作的命令行界面,还是愿意用鼠标点点按钮的Windows窗体。另外控制台程序的参数输入是按顺序执行,到了下一步就不能再更改前面的输入了,而在Windows窗体上我们可以等用户把所有需要的参数都已录入完成并进行了验证后,再一次性提交执行。要实现这两种需求,一个好的办法就是把控制台程序“嵌入”到WinForm中执行,这样既能给用户以良好的使用体验,又能复用已有的控制台程序。 所谓“嵌入”执行,是指写一个WinForm程序去调用控制台程序,并向控制 阅读全文
posted @ 2012-06-26 23:07 jevan 阅读(2427) 评论(0) 推荐(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 阅读(448) 评论(0) 推荐(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 阅读(404) 评论(0) 推荐(0)
摘要:笔者曾在一个项目的实施过程中,需要使用WM_COPYDATA在本地机器的两个进程间传输数据。在C++中实现非常简单,但在C#中实现时却出现了麻烦。由于没有指针,使用COPYDATASTRUCT结构传递数据时,无法正确传递lpData。从网上搜寻文档,找到一个例子,是将COPYDATASTRUCT结构的lpData声明为string。这样虽然能传递字符串,但不能传递随意的二进制数据。 偶然地,我查阅MSDN帮助时,发现了Marshal类。该类概述描述道:提供了一个方法集,这些方法用于分配非托管内存、复制非托管内存块、将托管类型转换为非托管类型,此外还提供了在与非托管代码交互时使用的其他杂项方法。 阅读全文
posted @ 2012-06-26 23:01 jevan 阅读(4819) 评论(0) 推荐(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 阅读(805) 评论(1) 推荐(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 阅读(768) 评论(0) 推荐(0)
摘要:最近修改了一下.可以更方便的用在各个窗体上了代码也简洁很多.直接引用一下就能使用不过只处理了窗口的左上右三个方向 .下边没处理/// <summary> /// 窗口停靠隐藏类 /// 使用方法 /// private FormDock formDock = null; /// formDock = new FormDock(this,300); /// </summary> public class FormDock { #region 自定义声明 /// <summary> /// 定义计时器 ... 阅读全文
posted @ 2012-06-26 09:44 jevan 阅读(2257) 评论(1) 推荐(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 阅读(3938) 评论(0) 推荐(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 阅读(9312) 评论(0) 推荐(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 阅读(2396) 评论(0) 推荐(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 阅读(6358) 评论(0) 推荐(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 阅读(2003) 评论(0) 推荐(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 阅读(1991) 评论(0) 推荐(0)
只有注册用户登录后才能阅读该文。
posted @ 2012-03-02 00:47 jevan 阅读(42) 评论(0) 推荐(0)