在C#应用程序与DLL交互中使用消息
在C#是一种类似 Java 的完全面向对象的高级编程语言,其处理过程采用事件驱动方式,但在实际的使用过程中,有时候通过调用系统原有的消息处理起来会更简单,特别是在处理与DLL文件的交互时,实践证明的确是非常方便的。 在C#中使用自定义消息 在C#中使用自定义消息非常简单,只需要下面几个简单的步骤就可以了: 1、定义消息 定义消息的方法与在VC中定义消息有一点点不同,比如在VC中申明一个自定义消息是这样的: #define WM_TEST WM_USER + 101 而在C#中消息需要定义成 Windows 系统中的原始的16进制数字,比如自定
设计带图标和自定义颜色的ListBox
在一个点对点文件传输的项目中,我需要显示文件传输的实时信息:传输的文件列表和当前传输的文件,当时我想到了用ListBox,但是但我用了ListBox后,我发现它不能改变控件中文本想的颜色,于是我就想扩展一下ListBox控件------ListBoxEx。 我的目标是给空间加上图标,还要能时时改变控件文本颜色。于是从ListBox派生类public class ListBoxEx : ListBox {…} 为了操作方便我为ListBoxEx的每一项设计专门的类ListBoxExItem public class ListBoxExItem {…} 为了保持我这个控件与WinForm的标准控件的操作借口一致,我又重新设计了两
Windows 窗体之创建动态上下文菜单
若要节省创建应用程序所需的时间并减少代码量,可以让多个控件共享单个上下文菜单对象。利用一个只包含该控件必需菜单项的“动态”上下文菜单(或快捷方式菜单),可以减少应用程序中控件所需的上下文菜单总数。以下演练显示如何更改每个控件的菜单项。 创建应用程序 以下步骤将创建一个 Windows 应用程序,它具有包含两个控件的窗体。在运行时,如果右击每个控件(只要它具有焦点,即被选定),将显示相应的上下文菜单。RadioButton 控件的上下文菜单将包含两个项;CheckBox 控件的上下文菜单将包含三个项。 在 Windows 窗体上
让窗体飘动起来--C#中Timer组件用法
Timer组件是也是一个WinForm组件了,和其他的WinForm组件的最大区别是:Timer组件是不可见的,而其他大部分的组件都是都是可见的,可以设计的。Timer组件也被封装在名称空间System.Windows.Forms中,其主要作用是当Timer组件启动后,每隔一个固定时间段,触发相同的事件。Timer组件在程序设计中是一个比较常用的组件,虽然属性、事件都很少,但在有些地方使用它会产生意想不到的效果。 本文介绍的程序,是用Visual C#做的一个窗体飘动的程序,这其中就大量的使用了Timer组件。下面就来介绍一下,这个程序的设计和运行的环境。 一. 本
Visual C# 对话框全接触 之六
打印预浏及打印 打印是我们在windows编程中常要用到的功能,在以前都是很麻烦工作,但在Microsoft .net Framework中打印是以组件提供给我们使用,不过还是点麻烦的,所以就专门写出来,供大家参改。 一, 在.net环境中,说到打印,就不能不说PrintDocumet这个类,PrintDocument属于System.Drawing.Printing这个名字空间,PrintDocument这个类是实现打印的核心代码。 如果要实现打印,就必需首先构造PrintDocument对象添加打印事件, printDocument.PrintPage+=new PrintPageEventHandler(this.printDocument_PrintPage) 打印其
Visual C# 对话框全接触 之五
页面设置(PageSetupDialog) 其实页面设置(PageSetupDialog)没有太多的讲,既然讲到这里,我还是把PageSetupDialog中常用的属性列出来吧 一、页面设置(PageSetupDialog)常见属性 AllowMargins 设置是否可以对边距的编辑 AllowOrientation 是否可以使用"方向"单选框 AllowPaper 设置是否可以对纸张大小的编辑 AllowPrinter 设置是否可以使用"打印机"按钮 Document 获取打印机设置的PrintDocument MinMargins 允许用户选择的最小边距 就这么简单啦,我们看看下面的吧,还有更重磅的东东呢?关于打印的。[@more@]
Visual C# 对话框全接触 之四
颜色对话框(ColorDialog) 颜色拾取框也是我们常见的对话框之一,下面我们来看看在C#中是如何操作颜色对话框的呢? 一、 颜色对话框(ColorDialog)的常见属性 AllowFullOpen 禁止和启用"自定义颜色"按钮 FullOpen 是否最先显示对话框的"自定义颜色"部份 ShowHelp 是否显示"帮助"按钮 Color 在对话框中显示的颜色 AnyColor 显示可选择任何颜色 CustomColors 是否显示自定义颜色 SolidColorOnly 是否只能选择纯色 实现代码见下: private void colorDialogBTN_Click(object sender, System.EventArgs
Visual C# 对话框全接触 之三
字体对话框(FontDialog) 在文字处理中,我们常用到字体,现在我们来做一个最常见的字体对话框。 一、 字体对话框(FontDialog)常用属性 ShowColor 控制是否显示颜色选项 AllowScriptChange 是否显示字体的字符集 Font 在对话框显示的字体 AllowVerticalFonts 是否可选择垂直字体 Color 在对话框中选择的颜色 FontMustExist 当字体不存在时是否显示错误 MaxSize 可选择的最大字号 MinSize 可选择的最小字号 ScriptsOnly 显示排除OEM和Symbol字体 ShowApply 是否显示"应用"按钮 ShowEffects 是否显示下划线、删除线、字体颜色
Visual C# 对话框全接触 之二
二、保存文件对话框(SaveFileDialog) 保存文件对话框控件有两种情况,一就是保存,二就是另存为,保存很简单,就是在文件已经打开的情况下的,再把文件写一篇,在这里我们主要讲另存为的情况(SaveAs)。 1,SaveFileDialog控件的属性 Filter 要在对话框中显示的文件筛选器,例如,"文本文件(*.txt)|*.txt|所有文件(*.*)|*.*" FilterIndex 在对话框中选择的文件筛选器的索引,如果选第一项就设为1 RestoreDirectory 控制对话框在关闭之前是否恢复当前目录 AddExtension 是否自动添加默认扩展名 CheckFileExists CheckPa
Visual C# 对话框全接触 之一
VS.net bate 2出来也很久了,感觉还可以。早一阵子,朋友让我帮他写两个打印程序,当中用了不少的对话,在查资料的时候看到国外有一篇专门的文章介绍对话框的,就决定写这篇文章,让大家都有个好的起点。同时还着重介绍了打印那一部份,大家可以仔细研究一下,都说了很多了。现在我们开发吧! 对话框中我们常用了以下几种: 1、文件对话框(FileDialog) 它又常用到两个: 打开文件对话框(OpenFileDialog) 保存文件对话(SaveFileDialog) 2、字体对话框(FontDialog) 3、颜色对话框(ColorDialog) 4、
C#处理文本文件之二
三. 用C#处理文本文件的完整源程序代码(control.cs): 掌握了上面这些关键步骤,就可以方便的得到用C#来处理文本文件的一个完整的源程序,具体如下: using System ; using System.Drawing ; using System.Collections ; using System.ComponentModel ; using System.Windows.Forms ; using System.Data ; using System.IO ; using System.Drawing.Printing ; public class Form1 : Form { private RichTextBox richTextBox1 ; private Button button1 ;
C#处理文本文件之一
文本文件是一种常用的文件格式,所以如何处理文本文件也就成为编程的一个重点。本文就来探讨一下用C#是如何来处理文本文件。其内容重点就是如何读取文本文件内容、如何改变文本文件的内容,以及如何用C#来实现对读取后的文本文件的打印预览和打印。 一. 本文程序设计和运行的软件环境: (1).微软公司视窗2000服务器版 (2)..Net FrameWork SDK Beta 2 二. C#处理文本文件的一些重要环节: (1).如何读取文本文件内容: 在本文介绍的程序中,是把读取的文本文件,用一个richText
讲述c#中的类型转换之数值类型
2. 数值类型之间的相互转换 这里所说的数值类型包括 byte, short, int, long, fload, double 等,根据这个排列顺序,各种类型的值依次可以向后自动进行转换。举个例来说,把一个 short 型的数据赋值给一个 int 型的变量,short 值会自动行转换成 int 型值,再赋给 int 型变量。如下例:private void TestBasic() {byte a = 1; short b = a; int c = b;long d = c; float e = d; double f = e;this.textBox1.Text = "";this.textBox1.AppendText("byte a = " + a.ToString() + " ");this.textBox1.Append
讲述c#中的类型转换之装箱
C# 出来也有些日子了,最近由于编程的需要,对 C# 的类型转换做了一些研究,其内容涉及 C# 的装箱/拆箱/别名、数值类型间相互转换、字符的 ASCII 码和 Unicode 码、数值字符串和数值之间的转换、字符串和字符数组/字节数组之间的转换、各种数值类型和字节数组之间的转换、十六进制数输出以及日期型数据的一些转换处理,在这里与大家分享―― 1. 装箱、拆箱还是别名 许多 C#.NET 的书上都有介绍 int -> Int32 是一个装箱的过程,反之则是拆箱的过程。许多其它变量类型也是如此,如:short <-> Int16,long <-> Int64 等。
C#多线程应用技术面对面探讨
实例程序说明 本文的实例程序包括一个列表框、三个按钮。程序使用一个新的线程来运行一个后台处理,结果在列表框中显示。按钮button1启动一个计算平方的线程。按钮button2停止后台处理线程。按钮button3退出程序。程序运行情况如图1所示。 使用线程 首先创建运行在新线程上的后台任务。表1所示的代码执行一个相当长的运行处理----一个无限循环。 表1、后台处理程序 private void BackgroundProcess() { int i= 1; while(true) { // 向列表框增加一个项目 listBox1.Items.Add("Iterations:
C#中利用正则表达式实现字符串搜索之二
4、利用正则表达式实现字符串搜索 4.1 在C#中使用.net一般表达式引擎 下面将通过一个样例的开发,执行并显示一些搜索的结果,说明一般表达式的一些特性,以及如何在C#中使用.NET一般表达式引擎。说明使用字符串时应在前面加上符号@。String Text=@"I can not find my position in Beijing"; 把这个文本称为输入字符串,为了说明一般表达式.NET类,本文先进行一次纯文本的搜索,这次搜索不带任何转义序列或一般表达式命令。假定要查找所有字符串ion,把这个搜索字符串称为模式。使用一般表达式和上面声明的变量Text,编
C#中利用正则表达式实现字符串搜索之一
1、正则表达式简介 正则表达式提供了功能强大、灵活而又高效的方法来处理文本。正则表达式的全面模式匹配表示法可以快速地分析大量的文本以找到特定的字符模式;提取、编辑、替换或删除文本子字符串;或将提取的字符串添加到集合以生成报告。对于处理字符串(例如 HTML 处理、日志文件分析和 HTTP 标头分析)的许多应用程序而言,正则表达式是不可缺少的工具。 .NET 框架正则表达式并入了其他正则表达式实现的最常见功能,被设计为与 Perl 5 正则表达式兼容,.NET 框架正则表达式还包括一些在其他实现中尚未提供的功能,.NET 框架正
C#中一些字符串操作的常用用法
//获得汉字的区位码 byte[] array = new byte[2]; array = System.Text.Encoding.Default.GetBytes("啊"); int i1 = (short)(array[0] - ''''); int i2 = (short)(array[1] - ''''); //unicode解码方式下的汉字码 array = System.Text.Encoding.Unicode.GetBytes("啊"); i1 = (short)(array[0] - ''''); i2 = (short)(array[1] - ''''); //unicode反解码为汉字 string str = "4a55"; string s1 = str.Substring(0,2); string s2 = str.Substring(2,2);
转 PL/SQL单行函数和组函数详解之一
函数是一种有零个或多个参数并且有一个返回值的程序。在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类: 单行函数 组函数 本文将讨论如何利用单行函数以及使用规则。 SQL中的单行函数 SQL和PL/SQL中自带很多类型的函数,有字符、数字、日期、转换、和混合型等多种函数用于处理单行数据,因此这些都可被统称为单行函数。这些函数均可用于SELECT,WHERE、ORDER BY等子句中,例如下面的例子中就包含了TO_CHAR,UPPER,SOUNDEX等单行函数。SELECT ename,TO_CHAR(hiredate,'day,DD-Mon-
转 C#时间函数扩展
//本周是本年第几周private int DatePart(System.DateTime dt) { int weeknow = Convert.ToInt32(dt.DayOfWeek);//今天星期几 int daydiff = (-1) * (weeknow+1);//今日与上周末的天数差 int days = System.DateTime.Now.AddDays(daydiff).DayOfYear;//上周末是本年第几天 int weeks = days/7; if(days%7 != 0) { weeks++; } //此时,weeks为上周是本年的第几周 return (weeks+1); } //本周起止日期 private string WeekRange(System.DateTime dt) { int weeknow = Convert.ToInt32(dt.DayOfWeek); int daydi