C#语言
XueminXu
这个作者很懒,什么都没留下…
展开
-
C#.net串口通信详解!
VS.NET2005中SerialPort控件操作详解——C#语言编写(VS 2008基本一致) (实例编写的是一个使用SerialPort类进行串口通讯,并读取和接受COM端的数据)using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;原创 2012-10-02 13:36:18 · 4003 阅读 · 0 评论 -
C#自定义事件的步骤
通常C#自定义事件有下面的几个步骤:1、声明一个delegate: (用于事件的类型的定义)如:C#代码public delegate void 委托名称EventHandler(object serder, EventArgs e);如果你想自定义事件的参数EventArgs,你可以从这个类派生你自己的事件参数类,然后在delegate的声明中,用你的参数类替换EventArgs原创 2012-10-02 13:32:35 · 688 阅读 · 0 评论 -
C# FileStream/StreamWriter/StreamReader的区别
FileStream对象表示在磁盘或网络路径上指向文件的流。这个类提供了在文件中读写字节的方法,但经常使用StreamReader或 StreamWriter执行这些功能。这是因为FileStream类操作的是字节和字节数组,而Stream类操作的是字符数据。这是这两种类的一个重要区别,如果你是准备读取byte数据的话,用StreamReader读取然后用 System.Text.Encoding原创 2012-10-04 09:02:01 · 807 阅读 · 0 评论 -
C#通过LPT控制打印机——txt文档读取指令打印条码
//C#控制打印机(直接发送打印机命令到打印机)//一个打印机控制类,很有用的,其中使用了windows api控制lpt端口,对条码打印机的控制方法如下:将打印机的命令写到一个文件里,再使用之。//该实例从txt文档读取指令然后写入到LPT1端口//代码:using System;using System.Collections.Generic;using System.原创 2012-10-04 09:04:27 · 3028 阅读 · 1 评论 -
C#LPT指令打印条码——代码嵌套指令
VS中存在Com口操作的控件,却未有现成的LPT端口控件,而相对COM口来说,LPT的速度要快,所以在打印的时候客户一般选择LPT通讯方式,经过网上的一些查阅,终于实现了LPT口的打印,打印机为Zebra,写出来与大家分享。其他品牌打印机原理类似,只是打印指令有所区别。using System;using System.Collections.Generic;using System.原创 2012-10-04 09:36:58 · 1400 阅读 · 0 评论 -
C#并口指令打印的实现总结
打印机(条码)打印标签、条码的方式一种是通过驱动发送图形的方式(这时一般需要排版软件),另一种是无需驱动直接通过发送指令到打印机执行打印。这里就是采取第二种方式打印。下面把实现过程中遇到的问题和一些心得总结一下:本实例使用DataMax-i-4308打印机。 1. VS(2008)中存在Com口操作的控件,却未有现成的LPT端口控件,而相对COM口来说,LPT的速度要快,所以在打印的原创 2012-10-08 09:19:59 · 4380 阅读 · 1 评论 -
C#从文本文件读取指定行
C#(VS 2008)的与文件操作相关的类FileStream、StreamReader等,他们封装好的函数不够方便对文本文件制定行进行操作。但是利用StreamReader类的ReadLine可以间接地实现这个操作。实现方法有很多种,这里列举一种网上很多朋友都熟知的方法。另外,从文本文件制定位置读取可以调用API函数实现(当然也有其他方式),具体方法如有需要可以索取。//用ArrayList原创 2012-10-11 12:59:48 · 7788 阅读 · 2 评论 -
C# ListView控件的Click和SelectedIndexChanged事件
用C#写仓库管理系统,对ListView控件的事件做一下总结: 1. Click事件:当你的光标移动到item(数据行)上按下左键然后在同一个地方弹起的时候这个时候激活Click事件,其他情况不激活,例如,当你在ListView的空白处单击鼠标,这个时候Click事件并不触发。 2. SelectedIndexChanged事件:这个事件顾名思义就是你的选择发生改变时,原创 2012-10-12 09:31:18 · 16489 阅读 · 0 评论 -
asp.net中跨页读取控件,公共属性,Form信息
读取源页面的信息 ASP.NET 2.0中,Button控件有个新增的属性PostBackUrl,用来设置需要提交的目标页面。因为只要指定Button控件的PostBackUrl属性就可以提交到其它页面,我们可以在页面中使用多个控件配置其PostBackUrl的属性,提交到不同的页面。当然也可配置多个页面提交到同一个页面。 在跨页面提交之后,通常我们需要从源页面中读取控件的信息(即由浏转载 2012-10-12 09:30:17 · 1156 阅读 · 0 评论 -
C#控件与工具箱
在VS编程环境下——(我使用的是2008版本),通常在工具箱里显示的是基本的控件,也就是常用的。自定义组件和其他没有显示的组件要在工具箱显示就必须通过手工方式添加进来, 1. 添加.net、com组件等,在工具箱点右键->选择项,在Framework.net组件里选中一些你想添加的项。 2. 添加自定义组件,这个时候需要把你的dll程序集添加进来,而且这个程序集需要一直原创 2012-10-15 00:27:33 · 2493 阅读 · 0 评论 -
C#循环体内定义对象/变量
在循环体内定义一个string类型的数组(引用)或者int型的变量(非引用),因为循环体重复执行,每次执行定义语句时都定义一次,看似出现了重复定义,但经过断点跟踪,其实在循环体内每次结束本次循环进入条件判断时,已经超出了循环内定义的对象的作用域(有效范围),但在下一次进入该循环时,该对象的数值仍然保持原样,初步得出的结论是:没有结束循环时,循环体内的变量在内存中没有被释放,当再次进入循环定义时,系原创 2012-10-15 00:28:36 · 4129 阅读 · 0 评论 -
C#最小时到托盘\点托盘图标正常显示
点击最小化到托盘时,首先需要给NotifyIcon添加Icon属性,也就是给一个图标,不然在托盘显示空白(无显示),简单代码如下: private void Form1_SizeChanged(object sender, EventArgs e) { if (this.WindowState == FormWindowState.Mi原创 2012-10-18 16:29:06 · 498 阅读 · 0 评论 -
C#禁用关闭按钮(变灰)
在.net里需要引用api函数能变灰关闭按钮,以下为实现代码:至于其他方式暂待研究中![DllImport("user32.dll")]static extern IntPtr GetSystemMenu(IntPtr hwnd, bool bRevert);[DllImport("user32.dll")]static extern bool EnableMenuItem(Int转载 2012-10-18 16:31:17 · 4968 阅读 · 0 评论 -
C#里ListView中的值赋给Datatabel对象
C#里把ListView中的数据提取出来然后写入到一个Datatabel表里,经查找资料初步得知,只能把ListView中的数据一个单元格一个单元格的赋给datatabel对象。大概步骤如下: int i, j; DataTabel dt; DataRow dr; //生成DataTab原创 2012-10-19 12:53:10 · 1042 阅读 · 0 评论 -
C#Datatabel引用单元格的值
datatabel.Rows[i][j]; //第i行第j列的值,其中datatabel为DataTabel类型变量原创 2012-10-19 12:53:55 · 542 阅读 · 0 评论 -
C#中DataGridView控件鼠标点击选中行的问题
以下所有事件都是dataGridView的事件。1、CellClick:在单元格内按下并在同一个单元格内弹起鼠标左键;2、CellMouseDown:在单元格按下鼠标左键(或右键)时触发;3、CellMouseUp:在单元格上弹起左键或右键;4、MouseDown:鼠标在DataGridView控件上按下鼠标左键或右键;5、MouseUp:当DataGridView的Mouse原创 2012-10-29 13:53:00 · 7143 阅读 · 0 评论 -
DataGridView排序后引起的索引变化之排序前选定的行在排序后的索引
现在我把DataGridView的DataSource设置为DataSet中的一个DataTable,但是现在如果我在DataGridView中排序后,如何知道选中行在DataTable中的Index?Answer:您可以使用 DataRowView.SeletedRows找到当前选中的一行,然后通过转成 DataRowView类型。 DataRowView 有一个属性叫做 Row原创 2012-10-29 13:53:55 · 3508 阅读 · 0 评论 -
C#控件DataGridView的DataSource属性设为DataView和DataTable的区别
先定义 DataGridView dgv; DataView dv; DataTable dt;假如上面三个对象都已初始化,dgv为一个DataGridView控件。dgv的DataSource设为dt时,如果DataGridView中的数据排序,可是它的数据源dt的数据并没有排序,如果用索引索取数据会导致数据混论。因为dt为dgv的源数据。如果dgv的DataSource设为DataVi原创 2012-10-29 13:55:09 · 4767 阅读 · 0 评论 -
C#中资源文件的管理
C#中从本地导入的资源转化为在resx后缀名的文件中保存。例如控件中的Image属性中从本地选择一个图像,ImageList的Images属性中从本地导入的图像、icon格式的图标文件都将转化为资源文件,并从该文件中调用资源。原创 2012-10-28 20:55:27 · 589 阅读 · 0 评论 -
C#空字符串、空字符、null、ASCII码为0的字符
在C#中,数据类型主要分数值类型和引用类型,null可以理解成一个引用类型的值。null表示从内存中销声匿迹。不再占用内存。它不可以赋给数值类型如char、int等; 空字符等价于'\0'也就是ASCII码值为0的字符。该字符是占用内存空间的,占一个字节; 空字符串最有意思,看上去什么都没有,似乎不占用内存,而且你用System.Text.Encoding.AS原创 2012-10-28 20:56:40 · 7576 阅读 · 0 评论 -
C#条码打印与ZPL
ZPL(Zebra Programming Language)是斑马公司(做条码打印机的公司)自己设计的语言,由于斑马打印机是如此普遍,以至于据我所见所知,条码打印机全部都是斑马的,所以控制条码打印机几乎就变成了对ZPL的使用.总的逻辑分为以下两步: (1)编写ZPL指令 (2)把ZPL作为C#的字符串,由C#把它送至连接打印机的端口.其中,用C#把字符串送原创 2012-10-21 21:58:01 · 2554 阅读 · 2 评论 -
DataGridView 列有三种排序模式
DataGridView 列有三种排序模式。每一列的排序模式是通过该列的 SortMode 属性指定的,该属性可以设置为以下的DataGridViewColumnSortMode 枚举值之一。DataGridViewColumnSortMode 值 说明Automatic 文本框列的默认排序模式。除非将列标头用于选择,否则单击列标头将自动按此列对 DataGridVi转载 2012-10-21 22:04:02 · 5400 阅读 · 0 评论 -
C#中DataGridView控件排序问题
一下实例为点击列标题单元格后执行排序的操作,按照点击的某一列进行排序,排序有升序和降序两种方式。privatevoid dataGridView1_ColumnHeaderMouseClick( object sender, DataGridViewCellMouseEventArgs e){ DataGridViewColumn newColumn = dataGri原创 2012-10-21 21:59:25 · 3978 阅读 · 1 评论 -
C#中FileStream涉及到的参数和对应的取值参考
C#中FileStream涉及到的参数和对应的取值参考 FileStream.(filename,FileMode,FileAccess) 1、FileAccess的取值 2、FileMode的取值原创 2012-10-21 22:01:39 · 1403 阅读 · 0 评论 -
C#语言中switch模块case default
package flowcontrol; 1. 2. publicclass SwitchCase { 3. // first default 4. publicstaticvoid testFirst(int i) { 5. switch (i) { 6. default: 7. System.out.println("default");// first defau转载 2012-10-30 23:42:14 · 2109 阅读 · 0 评论 -
DataTable、DataRow 手动赋值
DataTable MyDataTable = new DataTable(); MyDataTable.Columns.Add(new DataColumn("学生编号", typeof(string))); MyDataTable.Columns.Add(new DataColumn("姓名", typeof(string)));原创 2012-10-30 23:43:51 · 2179 阅读 · 0 评论 -
C# DataView实现前N行筛选
DataView很遗憾的一点是没有提供选择,Top N行的功能,因此只能通过自定义方法实现后来还是解决了,看似简单其实也有几个地方值得学习的: public DataView SelectView(string NamePara,int TopValue) { SqlCode Scc = new SqlCode();原创 2012-10-30 23:39:59 · 2024 阅读 · 0 评论 -
.Net平台Winform两个ComboBox控件绑定同一个数据源的问题
今天WINFROM编程遇到这么一个问题:是有关WINFORM中两个comboBox控件绑定同一个数据源的问题,在窗体的界面上有两个comboBox,我在Form1_Load中对他们做了数据绑定(具体代码如下),但是运行出现了这个一个奇怪的问题,我改变了comboBox1的值,但是comboBox2的值也自动改变了,我没有设置comboBox1_SelectedIndexChanged函数p原创 2012-10-31 12:55:04 · 3045 阅读 · 0 评论 -
正则表达式限制输入整数和小数
string pattern = @"^\d{1,7}(?:\.\d{0,2}$|$)"; //这是一个格式匹配字符串 其中的含义可以参考http://blog.csdn.net/xueminxu/article/details/8088572。如果调用以下代码,可以匹配整数位最多为7位,小数位最多为2位的数值型数据(也就是只能输入数字和小数点) string text原创 2012-10-31 12:56:24 · 1762 阅读 · 0 评论 -
C# DataGridView显示行号的两种方法
方法一:网上最常见的做法是用DataGridView的RowPostPaint事件在RowHeaderCell中绘制行号:privatevoiddataGridView1_RowPostPaint(objectsender, DataGridViewRowPostPaintEventArgs e) { try {原创 2012-10-31 13:40:18 · 1400 阅读 · 0 评论 -
C#语言中泛型的使用和性能
C#中的泛型类似于C++的模版,只是C++中的模版在实例化时需要模版的源代码,而C#中的泛型是在CLR中定义的,所以在C#中定义了泛型也可以在VB等其他环境下使用。也就是说泛型可以在一种.Net语言中定义,在另一种.Net语言中使用。泛型的本质是自己指定类型,所以在拆箱和封箱上的转化性能损失比较小,例如,定义了一个int类型的List泛型:List,代码如下: List listInt=原创 2012-10-23 09:13:05 · 779 阅读 · 0 评论 -
C#语言转义字符(\xhhhh和\udddd)
C#语言中转义字符和C/C++语言的转义字符不太一样,但有一些是通用的。在C#语言中的转义字符有下面这些(也许不太完整,此为个人实践中的总结,在网上看到的很多转载的文章都混淆了和C/C++中的转义字符。) \'(单引号 0x0027) \"(双引号 0x0022) \\(反斜杠 0x005C) \0(空字符 0x0000) \a(发出一声响铃 0x原创 2012-10-23 10:02:45 · 3335 阅读 · 0 评论 -
Asp.Net网站发布到IIS的四种方法及注意事项
不管是那种发布方法, 第一件事情是让IIS能够支持asp.net程序, 默认IIS是不开器asp.net网站程序的支持的.在IIS中的"Web服务扩展"中, 确保"ASP.NET v2.0.50727"被启用. 其他的可以保持禁用状态.发布方法1:---直接复制到IIS目录发布目录中(C:\Inetpub\wwwroot)a. 将经过VS调试且运行正常的ASP.NET网站项目的文件夹复制到转载 2012-10-22 19:57:19 · 1160 阅读 · 0 评论 -
C#导出到Excel表格
方法1:此方法速度也是超级快,只不过导出的格式非标准的Excel格式,默认工作表名与文件名相同string FileName="d:\\abc.xls";System.Data.DataTable dt=new System.Data.DataTable();FileStream objFileStream;StreamWriter objStreamWriter;string原创 2012-10-22 20:08:45 · 620 阅读 · 0 评论 -
C#创建QueryTable方式导出到Excel
第一步是要利用Excel的QueryTable的方法﹐首先需要引用Excel類庫。第二步就是新增一個窗體文件﹐為簡單起見﹐只在窗體上加一個button按鈕。在Button Click事件中加入操作的代碼。整個操作﹐我只在一個類中實現﹐源碼附貼如下(office2003)﹕using System;using System.Collections.Generic;using Syst转载 2012-10-23 09:09:28 · 815 阅读 · 0 评论 -
C#控件Enable设为false和true后的字体颜色修改
[System.Runtime.InteropServices.DllImport("user32.dll ")] public static extern int SetWindowLong(IntPtr hWnd, int nIndex, int wndproc); [System.Runtime.InteropServices.DllImport("user32.dll ")] pub原创 2012-10-23 10:01:43 · 4741 阅读 · 0 评论 -
C#指定窗口显示位置
在启动一个程序时,我们希望窗口显示的位置处于屏幕的正中心,可以如下设置:MainFormmainForm=newMainForm();mainForm.StartPosition=FormStartPosition.CenterScreen;mainForm.Show();如果在允许操作主窗口之前,必须先登录,则弹出登录窗口。此时主窗口出现在登录窗口后面,无法进行操作。Main原创 2012-10-23 10:05:01 · 774 阅读 · 0 评论 -
C#获取屏幕大小或任务栏大小
使用SystemInformation类//当前的屏幕除任务栏外的工作域大小string currentScreenSize_OutTaskBar=SystemInformation.WorkingArea.Width.ToString() + "," +SystemInformation.WorkingArea.Height.ToString();MessageBox.Show(原创 2012-10-23 10:06:09 · 2500 阅读 · 0 评论 -
在Panel控件中添加新的窗体(C#,winform开发)
开始是想到的设置思路很简单,主窗体(如上图),右边放置一个Panel控件.然后根据单击的按钮将子窗体显示在Panel控件上.在按钮的单击事件中加入下面的代码:private void button1_Click(object sender, EventArgs e){ ChildForm child = new ChildForm(); this.panel1.原创 2012-10-23 10:09:43 · 4973 阅读 · 0 评论 -
C#监控文件夹中文件的删除、移动、创建、重命名等操作
1.FileSystemWatcher基础在应用FileSystemWatcher对象之前,必须了解这个对象的一些基本属性和事件。毫无疑问,这个对象的最重要的属性为“EnableRaisingEvents”属性。这个属性决定对象在收到改变通知时是否提交事件。如果EnableRaisingEvents属性设为假,对象将不会提交改变事件。如果设为真,它将提交改变事件。下面是在应用FileSys原创 2012-10-23 09:10:39 · 1951 阅读 · 0 评论