C#中将结构类型数据存储到二进制文件中方法
摘要:以往在vb6,vc6中都有现成的方法将结构类型数据写入和读取到二进制文件中,但是在c#中却没有现成的方法来实现,因此我查阅了一些资料,借鉴了网上一些同学的做法,自己写了个类似的例子来读写结构类型数据到二进制文件中,废话不多说了,先上代码:using System;using System.IO;us...
阅读全文
Config程序配置文件操作实践进阶之ConfigurationSectionGroup
摘要:今天又进一步对System.Configuration下的ConfigurationSectionGroup类及相关的类与方法进行了研究。发现要构建多层次嵌套的XML标签 则必须用到ConfigurationSectionGroup类我们看一下下面这个XML文件: ...
阅读全文
一个web.Config或app.Config自定义段configSections的示例
摘要:一个web.Config或app.Config自定义段configSections的示例越来越觉得,直接用配置文件app.Config或web.Config配置应用系统的运行参数,比自己做一个xml配置文件,简洁方便得多。这两个配置文件不仅有常见的connectionStrings和appSetti...
阅读全文
C1控件的破解步骤
摘要:最近接触了一个系统中的打印和报表控件用到了C1控件,控件在以前就注册了的,可是在这次修改了系统后,系统却提示C1的控件没有注册。怎么回事呢?我们这次并没有修改报表,而且也没有和C1控件相关的改动。怎么就出问题了。经过2天的调查终于明白了,由于发布系统的电脑在前段时间重装了系统,但是没有安装C1控件并注册,所以即使以前的代码进行了注册,但是在编译后系统运行时还是会显示要求注册。查看代码发现,在编译的电脑上代码中的控件全部显示未注册了。 既然查明了原因,就在编译的电脑上安装了C1控件并进行了注册,然后在引用了C1控件的画面上,点击C1控件,然后右键发现所有的C1控件都已经注册成功了。但是系统在运.
阅读全文
将devexpress中控件添加到vs工具箱中
摘要:在控制台转到目录D:\Program Files\DevExpress 2010.2\Components\Tools(安装目录)下,执行下面的命令:ToolboxCreator.exe /ini:toolboxcreator.ini如果要删除:ToolboxCreator.exe /ini:toolboxcreator.ini /remove
阅读全文
winform中怎样使DataGridView的某一列可以添加两个Button控件
摘要:今天在网上逛的时候,看到了一个童靴提的这个问题,看了帖子,发现楼主最终给出了自己的解决方案,感觉还不错,因此将帖子的内容整理了下,转出来了解决方案的思路是这样:分别创建三个新的按钮模板列,第一个显示删除图片,第二个显示编辑图片,第三个显示添加图片.看代码第一个按钮模板列的代码:using System;using System.Windows.Forms;namespace 两列合并重绘列标题头{ public class DataGridViewButtonColumnDel : DataGridViewColumn { public DataGridViewButtonColumnDel(
阅读全文
总结几种C#窗体间通讯的处理方法
摘要:应用程序开发中,经常需要多窗体之间进行数据通信,写几个例子,把几种常用的通信方式总结一下:主窗体Form1是一个ListBox,单击选中某列时,弹出窗体Form2,Form2中两个控件,一个是TextBox,显示选中的该列的文本,另一个是按钮,点击时将修改后的值回传,且在Form1中修改相应的列的文本,同时Form2关闭。C#窗体间通讯方法一:传值最先想到的,Form2构造函数中接收一个string类型参数,即Form1中选中行的文本,将Form2的TextBox控件的Text设置为该string,即完成了Form1向Form2的传值。当Form2的AcceptChange按钮按下,需要修改F
阅读全文
C# 在winform画面上点击某个区域造成按钮按下效果的方法
摘要:在Winform的窗体中,存在背景图的情况下,不想在画面上加入按钮,只希望利用窗体自身的几个事件来实现按钮按下的效果,怎么样实现呢?其实这也不难,只需要按照下列步骤即可实现,首先确定要按下的几个区域的坐标点和大小,准备好按下和弹出的图片,将这些坐标点和大小组成一个个区域(使用GraphicsPath来完成)。然后使用几个Flage标志,标识是否区域的按下。具体实现的代码如下:/// <summary> /// 实时监控,酒位展示,酒柜介绍,网络订购4个按钮的位置参数 /// </summary> int[,] BtnLocation = new int[4, 2]{{6
阅读全文
用C#实现智能设备上的NotifyIcon类
摘要:前几天有网友问.NET CF中怎么实现NotifyIcon,我这才知道原来.NET CF并没有提供NotifyIcon控件。 于是偶想PC上可以用Shell_NotifyIcon和MessageWindow来实现托盘图标,只是不知道.NET CF支持不支持这两个东东了。仔细看了一下.NET CF中可疑的命名空间,没想到在Microsoft.WindowsCE.Forms命名空间里面竟然有一个MessageWindow 类,太好了,只剩下一个Shell_NotifyIcon 函数了。接着 在Window CE的SDK的帮助文件里,又发现Window CE Platform API已经包含了She
阅读全文
用C#编程删除系统自带游戏
摘要:摘要:本文通过编程删除了windows2000中的四个系统自带的游戏,在编写过程中用树状视图和列表视图方式显示了windows2000中隐含的DllCache目录及该目录下的文件。正文近来,许多企业、机关为控制员工上班时间玩游戏,制定了许多制度,但并没有将游戏删除,尤其是系统自带的游戏程序,自从windows 2000采用了动态缓存目录的保护措施以来,我们通常用原来的方法在删除系统自带游戏几秒后,游戏又可以使用了。虽然有些文章介绍了那是由于微软系统的出于自身安全,在DllCache目录下进行了备份处理,但我们在通常情况下显示了所有隐藏文件后,仍然无法见到system32下的DllCache目录
阅读全文
C#中在panel上写文字并换行的方法
摘要:前段时间在优化项目时,突然想到在Panel上显示文字并换行的问题。当有一段文字需要显示并且最好是显示在Panel。于是我就动手写了下,做了一个Demo程序,现在将主要的代码贴出来,如果存在不足还希望能够帮忙提意见,以补充完善.///<summary>///显示文本时需要用到的方法///</summary>intlineDistance =5;//行间距Graphics gcs;intiHeight =0;string[]nrLine;string[]nrLinePos;intsearchPos =0;intsection =1;intsectionHeight =10;
阅读全文
C#中给Label控件设置BackgroundImage属性
摘要:在C#中,默认情况下是无法给Label设置BackgroundImage属性的,只有Image这个属性,但是在某些特殊的情况下我们又需要设置Label的BackgroundImage属性,因此我们必须对label控件加以改造。Label是继承自Control类的,而Control类是有BackgroundImage这个属性的,Label也有这个属性,只是在VS中我们无法看到而已,微软做了下处理,不希望我们在属性窗口中能够直接设置它。实际上它有很多属性在属性面板中没有显示而已,如下图示:因此我们可以对Label控件代码稍加改写即可,代码如下图所示,我们写个控件继承Label,重写它的2个方法即可
阅读全文
[置顶] C#中给Label控件设置BackgroundImage属性
摘要:在C#中,默认情况下是无法给Label设置BackgroundImage属性的,只有Image这个属性,但是在某些特殊的情况下我们又需要设置Label的BackgroundImage属性,因此我们必须对label控件加以改造。Label是继承自Control类的,而Control类是有BackgroundImage这个属性的,Label也有这个属性,只是在VS中我们无法看到而已,微软做了下处理,不希望我们在属性窗口中能够直接设置它。实际上它有很多属性在属性面板中没有显示而已,如下图示:因此我们可以对Label控件代码稍加改写即可,代码如下图所示,我们写个控件继承Label,重写它的2个方法即可
阅读全文
C#中给RichTextBox加上背景图片
摘要:在系统自带的RichTextBox中是无法给它设置背景图片,但是我们在某些场合可能需要给RichTextBox设置背景图片。那么怎么实现这一想法呢?经过研究发现通过其它巧妙的途径可以给RichTextBox设置背景图片。首先将RichTextBox这个控件加以改写。具体改写的代码如下:publicpartialclassrichTextBoxEx : RichTextBox{publicrichTextBoxEx(){InitializeComponent();base.ScrollBars = RichTextBoxScrollBars.None; }publicrichTextBoxEx.
阅读全文
C#防止在画面上闪烁的Button
摘要:当在winform中放置很多Button控件,并且画面还有背景,每个Button都还有背景的时候,显示画面时就会产生闪烁的效果,如果机器性能好的话,画面会比较快的加载完,闪烁的情况不会很明显,但是如果机器性能不佳的话,则会给用户很差的体验。即使画面和Button采用了双缓存,效果也不明显。因此需要对C#中的Button加以重载并重写部分代码。就可以避免这种情况发生了。废话不多说了,代码如下:public class ButtonEx : Button { public ButtonEx() { } //基类的方法不能用 protected override void OnPaintBack..
阅读全文
C# 实现屏幕键盘 (ScreenKeyboard)
摘要:要实现一个屏幕键盘,需要监听所有键盘事件,无论窗体是否被激活。因此需要一个全局的钩子,也就是系统范围的钩子。什么是钩子(Hook) 钩子(Hook)是Windows提供的一种消息处理机制平台,是指在程序正常运行中接受信息之前预先 启动的函数,用来检查和修改传给该程序的信息,(钩子)实际上是一个处理消息的程序段,通 过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获 该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不 作处理而继续传递该消息,还可以强制结束消息的传递。注意:安装钩子函数将会影响系统的性 能。监测“系统范围事件”的
阅读全文
Invoke and BeginInvoke
摘要:在Invoke或者BeginInvoke的使用中无一例外地使用了委托Delegate。 一、为什么Control类提供了Invoke和BeginInvoke机制?关于这个问题的最主要的原因已经是dotnet程序员众所周知的,我在此费点笔墨再次记录到自己的日志,以便日后提醒一下自己。1、windows程序消息机制Windows GUI程序是基于消息机制的,有个主线程维护着一个消息泵。这个消息泵让windows程序生生不息。Windows GUI程序的消息循环Windows程序有个消息队列,窗体上的所有消息是这个队列里面消息的最主要来源。这里的while循环使用了GetMessage()这个方法,
阅读全文
C# winform 捕获全局异常
摘要:using System;using System.Collections.Generic;using System.Windows.Forms;using System.IO;namespace GobalException{ static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { try { //处理未捕获的异常 Application.SetUnhandledExceptionMode(UnhandledException
阅读全文
使用ImessageFilter接口实现截获键盘或者鼠标的消息
摘要:在C#中可以使用IMessageFilter 接口来截获应用程序的消息I MessageFilter 接口允许应用程序在消息被调度到控件或窗体之前捕获它。可以将实现 IMessageFilter 接口的类添加到应用程序的消息泵中,以在消息被调度到控件或窗体之前将它筛选出来或执行其他操作。若要将消息筛选器添加到应用程序的消息泵中,请使用 Application 类中的AddMessageFilter 方法。Application.AddMessageFilter 方法添加消息筛选器以便在向目标传送 Windows 消息时监视这些消息。[Visual Basic]Public Shared Sub
阅读全文
能够分页显示的Label控件
摘要:话说分页这玩意在开发中可是相当的常见。网上到处都是分页的资料。可是在Winform中要做到分页显示文本内容就没有那么容易。而且不能使用一些可以分页的控件,比较DateGridView等。只好在已有的代码基础上开发了一个具备分页功能,并且可以改变行间距的Label。代码写的比较长,可以拷贝下来直接使用,体验下。using System;using System.ComponentModel;using System.Collections.Generic;using System.Diagnostics;using System.Text;using System.Drawing;using .
阅读全文