随笔分类 - WinForm
What's New
摘要:有时我们不希望我们的WPF应用程序可以同时运行有多个实例,当我们试图运行第二个实例的时候,已经运行的实例也应该弹出来。我们可以用Mutex来实现打开App.xaml.cs,在App类中添加如下内容 public partial class App : Application { [DllImport("user32", CharSet = CharSet.Unicode)] static extern IntPtr FindWindow(string cls, string win); [DllImport("user32")] ...
阅读全文
摘要:前面DebugLZQ的两篇博文:浅谈IOC--说清楚IOC是什么IoC Container Benchmark - Performance comparison在浅谈IOC--说清楚IOC是什么中,DebugLZQ介绍了什么是到底什么是IOC/DI,再复习一下,那么到底什么是IOC呢?就像Marti...
阅读全文
摘要:这篇博文总结下WPF中的拖动,文章内容主要包括:1.拖动窗口2.拖动控件 Using Visual Studio 2.1thumb控件 2.2Drag、Drop(不连续,没有中间动画) 2.3拖动一个控件 2.4让一个窗口内的所有(指定的)控件可拖动3.Expression Blend X实现拖动(Best Practice)Update: Move and resize controls on a form at runtime (with drag and drop)小结1.拖动窗口 我们知道,鼠标放在窗口的标题栏上按下就可以拖动窗体。我们要实现在窗口的全部地方或特定地方按下鼠标左...
阅读全文
摘要:前面的一篇博文DebugLZQ使用三层架构实现了TaskVision,并在后面利用Webservice代替ClassLibrary实现SQL Server 2008数据库操作提供程序。关于三层架构的理解请参考前一篇博文。写这篇博文的目的在于,强调我前面一篇博文中提到但是今天又遇到且花了我一定时间去解...
阅读全文
摘要:前言: 关于不同框架实现同一个TaskVision:前面DebugLZQ先是用WPF(没有使用MVVM,因为前面使用MVVM实现过过点餐系统),因而这个关键点就放在了WPF的Binding上面;然后用普通的Winform,没有加入任何模式,实现了相同的功能。因此这个重点放在了DataGridView...
阅读全文
摘要:前面的博文:WPF+SQL Server 2008 TaskVision Demo小结,写了用WPF和SQL Server 2008实现这个Demo时候遇到的一些有必要说明的地方。如SQL Server的相关设置问题,DataGrid的Binding等...毕竟那是WPF,其为我们简化了页面的表示,...
阅读全文
摘要:这是前面一篇博文:更换Winform 皮肤(上)----使用现有皮肤的后篇。主要是自己绘制Winform界面,搜索了网上的相关资源。实现了一个登陆页面。效果如下:下面来,看看我是如何实现的。首先,在Winform工程Demo中添加一些素材文件,并将其添加到资源里面,DebugLZQ用的是VS2012,直接拖过去就好。2.设置该窗体的FormBorderStyle为None。3.在更改窗体的后台cs代码如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;usi
阅读全文
摘要:偶然的想法,遇到了Winform更改Winform皮肤的问题。WPF没有这个问题,WPF的控件都是没有外形的,完全可以根据自己需要自由发挥,可以通过直观的编码实现各种绚丽的界面效果,网上也有很多现有的style、template供参考。相比WPF,Winform换肤就没有那么幸运了。实现起来相对比较麻烦。Baidu+Google,发现解决Winform换肤的实现方法,基本有如下两种。实现1.使用现有皮肤。优点:实现及其简单,基本不需要编码;但细节需要注意。缺点:不能自己定制实现2.完全的GDI+绘制。有点:可以完全根据个人爱好制作个性化的界面。缺点:完成一个用户体验良好的皮肤,编码量和前期图片
阅读全文
摘要:前面一篇博文:从C#5.0说起:再次总结C#异步调用方法发展史,总结了异步方法调用的发展史。关于C#2.0到5.0添加了一些什么东西,前面一篇博文中如下写到:1.0版本 - 基本C#语法。2.0版本 - 泛型的支持,CLR进行了升级,从根本上支持了运行时泛型。3.0版本 - LINQ,添加了from / join等类SQL关键字,添加了扩展函数,添加了编译期动态类型var关键字。4.0版本 - dynamic关键字,CLR进行升级,加入DLR,开始对动态进行友好的支持。同时加入动态参数、参数默认值、泛型协变等特性。5.0版本-新的异步模型,新增了async/await等关键字,简化并行计算Pa
阅读全文
摘要:C#发展至今,已经从最初的1.0到了5.0版本,其进化史如下,参考了C# 5.0 IN A NUTSHEL:让我们来回顾一下各个版本都带来了什么:1.0版本 - 基本C#语法。2.0版本 - 泛型的支持,CLR进行了升级,从根本上支持了运行时泛型。3.0版本 - LINQ,添加了from / joi...
阅读全文
摘要:本片博文接上一篇:.NET多线程执行函数,给出实现一个线程更新另一个线程UI的两种方法。Winform中的控件是绑定到特定的线程的(一般是主线程),这意味着从另一个线程更新主线程的控件不能直接调用该控件的成员。控件绑定到特定的线程这个概念如下:为了从另一个线程更新主线程的Windows Form控件,可用的方法有:首先用一个简单的程序来示例,这个程序的功能是:在Winfrom窗体上,通过多线程用label显示时间。给出下面的两种实现方式1.结合使用特定控件的如下成员 InvokeRequired属性:返回一个bool值,指示调用者在不同的线程上调用控件时是否必须使用Invoke()方法。如果主
阅读全文
摘要:最近因为工作的事情想了很多,此处略去三千字吧。。。还是把事件这个技术拿过来沉淀一下,继续学习,继续提高自己,好吧,废话不多说,进入正题吧~关于事件各位应该都不陌生,相信每个程序员都可以拍着胸脯说“事件?我知道啊~”,可如何自定义事件?也许有人心中就不是那么底气十足了。还是老规矩吧,高手绕行~用很多地...
阅读全文
摘要:最近在做一个WinCE的项目,需要产品推广,固需要程序的截图。那么,怎么样在WinCE下实现屏幕截图呢?“百度”下,没有找到合适的方法,倒是找到了一些WinCE截图的程序源码,和Windows下大同小异。问题没有解决,固继续摸索,后经高人指点迷津,知道了这个方法。我百度了下:“WinCE截图 博客园”没有找到相似的记录,所以写下此文和大家分享。 VS2005自带了这个工具,这个工具的名称为:“远程放大”,其路径为:"C:\Program Files\CE Remote Tools\5.01\bin\cczoom.exe" 。我们也可以通过“开始”-“VS2005”--“VS
阅读全文
摘要:前面一篇博文中,分享了一个文件夹加密小工具,该工具是操作文件夹名称的方法实现文件夹的一般加密,文件夹中的文件(视频、图片等)都原封不动的保存在那里。 DebugLZQ在网上搜索相关文件加密的程序,发现给出的基本都是针对“字符创”、“文本”的加密与解密。对视频文件、图片等一般文件的加密解密程序少之又少,故写下此文,实现一个对一般文件进行加密的小工具。 程序的主要功能是:用户通过文件选择框选择要加密的文件-》输入密码进行加密;选择加密后的文件,输入密码进行解密。 程序的主界面如下: 三个按钮的Click事件处理程序如下: private void btnSelectFil...
阅读全文
摘要:用C#语言实现一个文件夹锁的程序,网上类似的“xxx文件夹xxx”软件很多,但是基本上都是C/C++语言实现的,且都没有提供源码(这个可以理解,毕竟是加密程序,不应该泄露源码)。 程序的基本原理是:用C#语言重命名文件夹,通过重命名使之成为windows安全文件的类标识符。具体的方法是为文件夹添加拓展名“.{2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}”(.{2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}是windows安全文件的类标识符),这时文件夹的图标就会变成一把锁,这样文件夹就被加锁了。 程序的主界面非常简洁,截图如下:...
阅读全文
摘要:江苏大学 校园网 在教学行政区上网帮助小程序开发详解 程序中表达式的副作用问题。。。
阅读全文
摘要:用互斥法实现防止程序重复运行,使用内核对象Mutex可以防止同一个进程运行两次。注意:是名称相同的进程,而不是exe,因为exe程序可以改名。在Program.cs中修改首先添加using System.Threading;引用然后原内容改为下面所示 static class Program { private static Mutex myMutex; private static bool requestInitialOwnership = true; private static bool mutexWasCreated; ...
阅读全文

浙公网安备 33010602011771号