随笔分类 -  C#_WinForms

摘要:DWORDGetTickCount(void);1) 定义For Release configurations, this function returns the number of milliseconds since the device booted, excluding any time that the system was suspended.GetTickCountstarts at 0 on boot and then counts up from there.在Release版本中,该函数从0开始计时,返回自设备启动后的毫秒数(不含系统暂停时间)。For Debug con 阅读全文
posted @ 2011-10-17 14:11 许明吉博客 阅读(78103) 评论(0) 推荐(7)
摘要:/**************************************** * 函数名称:GetFoldAll(string Path) * 功能说明:获取指定文件夹下所有子目录及文件(树形) * 参 数:Path:详细路径 * 调用示列: * string strDirlist = Server.MapPath("templates"); * this.Literal1.Text = EC.FileObj.GetFoldAll(strDirlist); *************************************... 阅读全文
posted @ 2011-08-30 17:18 许明吉博客 阅读(7324) 评论(0) 推荐(0)
摘要:delphi 播放 GIF 动画 阅读全文
posted @ 2011-07-22 09:44 许明吉博客 阅读(1569) 评论(0) 推荐(0)
摘要:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Xml;using System.IO;namespace WindowsFormsApplication4{ public partial class Form1 : Form { public Form1() { InitializeComponent( 阅读全文
posted @ 2011-07-15 15:17 许明吉博客 阅读(2469) 评论(0) 推荐(0)
摘要:本段解说怎样去使用 C# 去包装到Pro/ENGINEER的连接。标题简单异步模式启动和停止Pro/ENGINEER连接到一个Pro/ENGINEER的进程完整异步模式C# 程序疑难解答简单异步模式一个简单异步模式程序不实现Pro/ENGINEER来的要求句柄的途径。因此,C#不能安插当在Pro/ENGINEER里发生事件而被通知的侦听。相应的,Pro/ENGINEER不能调用当你增加时必须提供的方法,例如,Pro/ENGINEER的菜单按钮。由于这个限制,一个简单异步模式程序可以用来自动化Pro/ENGINEER里的进程。程序可能既启动或连接到一个存在的Pro/ENGINEER会话,也可能在 阅读全文
posted @ 2011-07-11 17:43 许明吉博客 阅读(2276) 评论(0) 推荐(0)
摘要:虽然有 TabControl控件, 但是为了减少主窗体的代码量, 可以将部分分页的功能模块放置于一个 Form 中, 当调用时, 直接把这个 Form嵌入到一个 Panel中即可.示例如下:要嵌入的 Form: publicpartialclassFormEmbed:Form{publicFormEmbed(){InitializeComponent();}privatevoidbutton1_Click(objectsender,EventArgse){this.Hide();//不能调用Close方法,因为Close后Form被释放,就不能再次Show}}主窗体中放置一个容器Panel(或 阅读全文
posted @ 2011-07-11 17:29 许明吉博客 阅读(1581) 评论(1) 推荐(0)
摘要:namespace WindowsAPI { /// <summary> /// 在WINDOWS任务管理器里 不显示进程 /// qq:116149 /// zgke@sina.copm /// </summary> public class HideTaskmgrList { private System.Timers.Timer m_Time = new System.Timers.Timer(); private string m_ProcessName = ""; private int m_ProcessID = 0; /// <s 阅读全文
posted @ 2011-06-22 18:01 许明吉博客 阅读(1854) 评论(0) 推荐(0)
摘要:获取文件的图标this.Icon = GetFileIcon(@"c:\gdiplus.dll");获取文件夹图标this.Icon = GetDirectoryIcon();全不代码[StructLayout(LayoutKind.Sequential)] public struct SHFILEINFO { public IntPtr hIcon; public IntPtr iIcon; public uint dwAttributes; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)] public stri 阅读全文
posted @ 2011-06-22 17:58 许明吉博客 阅读(6848) 评论(2) 推荐(1)
摘要: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(appN 阅读全文
posted @ 2011-06-22 17:56 许明吉博客 阅读(424) 评论(0) 推荐(0)
摘要:我只是做了一些简单的测试...有疑问给我发消息把.使用方法//获取选择的图形 并且保存出来private void button2_Click(object sender, EventArgs e) { IList<MemoryStream> _List = gifRichTextBox1.LoadSelectFile(); for (int i = 0; i != _List.Count; i++) { File.WriteAllBytes(@"C:\Temp\A" + i.ToString() + ".gif", _List[0].ToA 阅读全文
posted @ 2011-06-22 17:55 许明吉博客 阅读(2912) 评论(5) 推荐(1)
摘要:以淡入淡出显示图像效果显示图像主要使用了ImageAttributes类的SetColorMatrix方法设置颜色调整矩阵实现淡入淡出的效果。ImageAttributes对象维护多个颜色调整设置,包括颜色调整矩阵、灰度调整矩阵、灰度校正值、颜色映射表和颜色阈值。呈现过程中,可以对颜色进行校正、调暗、调亮和移除。 淡入效果代码如下:privatevoidbutton1_Click(objectsender,EventArgse){ //淡入显示图像 try { Graphicsg=this.panel1.CreateGraphics(); g.Clear(Color.Gray); intwid 阅读全文
posted @ 2011-06-14 10:31 许明吉博客 阅读(3505) 评论(0) 推荐(2)
摘要:和模态对话框编辑器一样,C# WinForm控件开发环境并不会直接调用我们的编辑器控件,而是用过UITypeEditor类的派生来实现编辑器的调用,所以我们必须实现一个下拉式编辑器。 这篇文章我将介绍如何编写下拉式属性编辑器。下拉式(DropDown)属性编辑器和模态对话框属性编辑器的不同之处就是,当你点击属性值修改的时候,模态对话框编辑器是弹出一个模态对话框,而下拉式属性编辑器却是在紧贴着属性值的地方显示一个下拉的控件。不知道大家注意到了没有,这里我说的是显示一个下拉的控件,而这个控件也是需要你去C# WinForm控件开发的,接下来我还是以Scope属性为例,介绍一下具体的实现。首先我们要 阅读全文
posted @ 2011-06-08 18:09 许明吉博客 阅读(5661) 评论(1) 推荐(1)
摘要:就操作习惯而言,我们可以将Windows应用程序的用户分为两大类,第一类是偏好使用键盘的用户,第二类是偏好使用鼠标的用户。众多的实践经验让程序设计师充分了解到,务必提供热键(会显示出下划线的快速字符键)与快捷键(例如:Ctrl+某字符的组合按键)给大量运用键盘的用户,但是却反而常常忽略鼠标用户的需求。由于程序设计师本身就比较倾向于键盘用户,因此特别强调键盘导向的功能是可以理解的,但是每一位程序设计师也应该好好顾及鼠标的完整支持才是。其实鼠标用户所最期盼的就是对拖放操作的充分支持。仔细端详大多数的Windows应用软件或Windows操作系统本身,我们会发现拖放能力是无处不在的。举例来说,用户早 阅读全文
posted @ 2011-05-25 12:30 许明吉博客 阅读(666) 评论(0) 推荐(1)
摘要:拖放操作当然并非只限于文字,有许多应用程序都会提供拖放图片的功能,以便提升操作的便利性。事实上不管是拖放哪一种类型的数据,其间的方法都没有太大的差异。程序范例CH8_DemoForm012.cs示范如何在两个PictureBox控件间拖曳图片,其功能特性如下所示:如图8.13所示,您可以使用拖放方式将左侧PictureBox控件中的图片移动至右侧的PictureBox控件中,反之亦然;即左右两个PictureBox控件都可以作为拖放来源与置放目标。值得一提的是,如果您持续按Ctrl键,则可以使用拖放方式将左侧PictureBox控件中的图片复制到右侧的PictureBox控件中(如图8.1 阅读全文
posted @ 2011-05-25 12:29 许明吉博客 阅读(1389) 评论(0) 推荐(0)
摘要:随着桌面系统的推出,利用鼠标的拖放(Drag and Drop)操作由于其简单、直接,受到了越来越多的读者的欢迎,为迎合这种趋势,越来越多程序员在自己的程序中使用了拖放操作。拖放操作方便了程序的使用者,但由于拖放操作在程序中的设计工作比较还有点麻烦,甚至是一个难点,许多程序员对其都有点心有余悸。本文就结合微软公司最新的.Net程序开发语言--C#,来全面介绍一下在C#中是如何处理拖放操作的。在本文中,我们是通过二个代表组件,也是在拖放操作中经常使用到的二个组件--TreeView组件和ListView组件,之间互相进行拖放操作来说明此类问题的。在进行拖放操作之前,必须要对进行拖放操作的组件的& 阅读全文
posted @ 2011-05-25 12:26 许明吉博客 阅读(1326) 评论(0) 推荐(0)
摘要:private void MainPictureBox_Paint(object sender, PaintEventArgs e) { // board.Location=new Point(scaleHeight,scaleHeight); Graphics g = e.Graphics; int width = this.Width; int height = 50; Font font = new Font("Arial", 7); //Draw X for (int i = 0; i <= width; i++) { SizeF size = g.Measu 阅读全文
posted @ 2011-05-18 14:45 许明吉博客 阅读(3955) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2011-05-17 10:08 许明吉博客 阅读(385) 评论(1) 推荐(0)
摘要:agsXMPP下载http://www.ag-software.de/matrix-xmpp-sdk/download/http://www.ag-software.de/2008/10/30/agsxmpp-11-released/agsXMPP致力于创建一个轻量、快速的跨平台类库,用于XMPP协议。通过下面的三项技术,agsXMPP达到了这个目标。异步套接字与工厂模式结合的快速XML解析器自有的轻量级XML Dom,作为所有agsXMPP协议类的基础示例代码:XmppClientConnection xmpp = new XmppClientConnection("jabber. 阅读全文
posted @ 2011-05-10 17:12 许明吉博客 阅读(3042) 评论(0) 推荐(0)
摘要:/备注 按照定义,如果该进程在本地或网络驱动器的根目录中启动,则此属性的值为驱动器名称后跟一个尾部反斜杠(如“C:\”)。如果该进程在子目录中启动,则此属性的值为stringstr1=Process.GetCurrentProcess().MainModule.FileName;//可获得当前执行的exe的文件名。stringstr2=Environment.CurrentDirectory;//获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。不带尾部反斜杠的驱动器和子目录路径(如“C:\mySubDirectory”)。stringstr3=Directory.GetCurren 阅读全文
posted @ 2011-05-06 13:44 许明吉博客 阅读(360) 评论(0) 推荐(0)
摘要:1,MDI窗体设有两个窗体frmMain,frmChild,则:frmMain: 设IsMdiContainer属性为true打开子窗口: 在相关事件中写如下代码: frmChild child=new frmChild(); child.MdiParent=this;//this表示本窗体为其父窗体 child.Show(); 在打开子窗体时,如果只允许有一个子窗体,可以加入如下判断: if (this.ActiveMdiChild!=null) { this.ActiveMdiChild.Close(); //关闭已经打开的子窗体 //.... }更改MDI主窗体背景先声明一个窗体对象pr 阅读全文
posted @ 2011-04-28 18:05 许明吉博客 阅读(505) 评论(0) 推荐(0)