
C#
文章平均质量分 58
celte
这个作者很懒,什么都没留下…
展开
-
.NET c# Color对象的使用介绍
.NET框架中的颜色基于4种成份,透明度,红,绿和蓝.每一种成份都是一个字节,在0--255之间取值.Color结构代表颜色,当类和方法要作用于颜色的时候,它们作用于Color结构的一个实例.Color结构通过表态属性公开了140个命名颜色,这些属性返回预先创建的Color对象.Color newColor = Color.Red;创建Color实例的另一种方式是调用静态FromA转载 2013-05-02 22:52:20 · 2198 阅读 · 0 评论 -
C#创建不规则窗体
现在,C#创建不规则窗体不是一件难事,下面总结一下:一、自定义窗体,一般为规则的图形,如圆、椭圆等。做法:重写Form1_Paint事件(Form1是窗体的名字),最简单的一种情况如下:System.Drawing.Drawing2D.GraphicsPath shape = new System.Drawing.Drawing2D.GraphicsPath();转载 2013-05-25 21:25:49 · 862 阅读 · 0 评论 -
SerialPort Read读取数据出问题
刚才在用SerialPort 的Read读取串口数据时,正常情况是读出“AAAA06FA0203011111”类似数据,但是读取后发现无论怎么读总是读一串0出来,折腾半天,添加上ReadTimeOut事件后,读取出AA0……后面又是一大串的0实在坑爹,纠结半天,发现原来是串口返回数据需要一定时间,因此,在对串口发送查询指令后,不能立即就去读取数据,需要一段时间的缓冲与等待。采用了最简单原创 2013-05-25 16:19:08 · 7757 阅读 · 1 评论 -
跨线程调用DataGridView控件
访问 Windows 窗体控件本质上不是线程安全的。如果有两个或多个线程操作某一控件的状态,则可能会迫使该控件进入一种不一致的状态。还可能出现其他与线程相关的 bug,包括争用情况和死锁。确保以线程安全方式访问控件非常重要。 虽然可以使用如下:System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;原创 2013-07-11 22:40:38 · 4552 阅读 · 0 评论 -
捕获ESC键,退出程序
今天试了下在程序中添加捕获ESC键,并退出程序的功能,坑爹!本来Form上有一个属性是CancelButton,然后将它与一个按钮Button绑定后,按下ESC即可执行该按钮,可以利用此方法来设计,将Button的单击响应函数写成退出应用程序即可。不过,由于界面上,为了美观,不能再添加一个按钮,于是我就将按钮的Visible属性设置为false,结果坑爹的问题来了,当控件不可见后,它的原创 2013-07-12 01:10:41 · 4470 阅读 · 0 评论 -
频繁绑定DataGridView的DataSource却不正常显示
最近在写一个多线程程序,需要跨线程访问DataGridView,绑定其DataSource,而且由于线程几乎是每隔几秒都会重新绑定一次DataGridView的DataSource的,所以,遇到各种蛋疼的问题。首先说一个最常见最容易想到的办法:首先在主线程设置System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = fal原创 2013-07-25 23:11:03 · 4402 阅读 · 1 评论 -
ExecuteReader报错,语法错误
先上图:随后我就死命的看自己的sql语句,可是看来看去,也看不出问题,明明是很对的。。。最后,到处查找解决方案,终于在论坛见到了大神的一句:“你输入的是中文字符的空格!”然后我赶紧回来一看,果然是。。。。。。瞬间蛋碎了一地。。。。sql语句莫名报语法错误的时候,赶紧仔细检查下时候是空格问题,这个问题很难发现!!!!!原创 2013-07-28 17:01:05 · 1995 阅读 · 1 评论 -
C#的配置文件App.config使用总结
首先,先说明,我使用的app.config 配置文件的格式如下: 因此,对于配置文件的读取方式如下:(依然由上面的文件举一个简单的例子)static string str = "Data Source=" + System.Configuration.ConfigurationManager.A原创 2013-08-04 20:21:59 · 33591 阅读 · 8 评论 -
解决C#操作注册表权限不够的问题
在Win7中,系统安全系数已经很高了,因此.NET4.0中对于注册表操作这种高级权限的东西也限制的比较紧,因此,在编程中经常会发现,使用RegistryKey类进行操作时的各种失效或者各种报错。如何解决这问题呢?首先,因为要操作注册表,所以,需要程序以管理员身份运行。在Win7系统中的表现即为运行程序时,弹出用户帐户控制对话框,申请以管理员身份运行。在项目中新建一个后缀原创 2013-08-23 21:33:35 · 7923 阅读 · 1 评论 -
C#用mciSendString实现音乐的循环播放
直接上代码: public const int MM_MCINOTIFY = 0x3B9; //声明MCI函数,以播放音乐 [System.Runtime.InteropServices.DllImport("Winmm.dll")] public static extern int mciSendString(转载 2013-08-31 21:58:11 · 5678 阅读 · 0 评论 -
C#实现点击按钮退出应用程序
最近在做一个程序,要求先登陆后再进入界面。因此,若是用户取消登陆,则要退出应用程序。注意,用于重新设计了登陆界面,FormBorderStyle设置的为None,因此窗体右上角并没有关闭的按钮,按照常规如下方法来实现退出,是不现实的。。。private void F_Login_Close(object sender, EventArgs e) {原创 2013-05-07 16:40:22 · 16979 阅读 · 0 评论 -
设置statusStrip中子项居右显示
StatusStrip中没有单独设置某个子项左对齐或右对齐的属性,这时我们可以在需要右对齐的子项之前添加一个空白的Label类型的子项,并将它的Spring属性设置为True,之后的子项将自动跑到最右边了。ToolStripStatusLabel的Spring属性用于指示该控件是否占满StatusStrip的所有剩余空间,就像一个弹簧一样。转载 2013-05-06 23:14:13 · 2259 阅读 · 1 评论 -
DataGridView中的checkBox单选
先贴代码:private void dataGridView_Tool_CellClick(object sender, DataGridViewCellEventArgs e) { if (dataGridView_Tool.CurrentCell.ColumnIndex == 0) { fo原创 2013-05-05 20:58:10 · 1656 阅读 · 3 评论 -
学习笔记——C#中特殊的运算符
与C相比,在C#中有几个特殊的运算符is运算符 用于检查变量是否为指定的类型,若是,返回true,否则返回false 实例: int i=0; bool result=i is int; Console.WriteLine(result);//输出的值是true 注意,is运算符不能重载typeof运算符原创 2013-05-05 02:17:28 · 809 阅读 · 0 评论 -
线程间操作无效: 从不是创建控件“Control Name'”的线程访问它问题的解决方案及原理分析
如果代码是在VS2003中的话应该不会抛出这个异常,只有在使用VS2005的时候,如果你从非创建这个控件的线程中访问这个控件或者操作这个控件的话就会抛出这个异常。这是微软为了保证线程安全以及提高代码的效率所做的改进. 以前在VS2003中,我们通常都会忽略这种问题的存在,无限制的使用线程来完成一些工作,但是当系统慢慢变大的时候,这种滥用的线程不但没有提高我们的效率,反而使我们找错误的效率以转载 2013-05-05 11:13:30 · 841 阅读 · 0 评论 -
学习笔记——C#中特殊流程语句
foreach语句 用于枚举一个集合的元素,并对该集合中的每个元素执行一次嵌入语句 但是foreach语句不应用于更改集合内容,以避免产生不可预知的错误 语法格式: foreach(【类型】【迭代变量名】in【集合类型表达式】) { 【语句块】 } 其中【类型】和【迭代变原创 2013-05-05 02:18:58 · 759 阅读 · 0 评论 -
学习笔记——C#数组
声明 语法: type[] arrayName; 实例: int[] arr; 注意,数组的长度不是声明的一部分,而且数组在访问之前必须初始化。 数组类型可以使基本数据类型,也可以是枚举或者其他类型初始化 可以通过new运算符创建数组并将数组元素初始化为其默认值 实例: int[]原创 2013-05-05 02:29:07 · 1085 阅读 · 0 评论 -
学习笔记——C#的Char
概述: Char在C#中表示一个Unicode字符,正是这些Unicode构成了字符串Char类的常用方法及说明: IsControl 指示指定的Unicode字符是否属于控制字符类别 IsWhiteSpace 指示某个Unicode字符是否属于空白类别 IsSeparator 指示某个Unicode字符原创 2013-05-05 02:30:04 · 1106 阅读 · 0 评论 -
学习笔记——C#的String
Compare方法: Compare方法用来比较两个字符串是否相等,它有多个重载方法,最常用的是: int compare(string strA,string strB) int compare(string strA,string strB,bool ignorCase) 其中ignorCase这个参数若为true,则在比较字符串时就忽略大小写原创 2013-05-05 02:32:53 · 1068 阅读 · 1 评论 -
学习笔记——C#的StringBuilder
String 对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的 String 对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用 System.Text.StringBuilder 类。例如,当在一个循环中将许多字符串连原创 2013-05-05 02:35:54 · 1065 阅读 · 0 评论 -
C#在Winform中改变Textbox高度三种方法
最近在做C# Winform项目,需要有一个能动态调整大小的Textbox,并且要是单行的。试了几次,单行模式的Textbox不能直接改高度。于是搜索了一下,整理出几个改变高度的方法。1.将Textbox改为多行模式,设置MutliLine属性为True,然后屏蔽Enter键。private void txtTest_KeyDown (object sender, KeyEvent转载 2013-05-05 09:25:00 · 1633 阅读 · 0 评论 -
C#的Timer详解
在C#里现在有3个Timer类:System.Windows.Forms.TimerSystem.Threading.TimerSystem.Timers.Timer这三个Timer我想大家对System.Windows.Forms.Timer已经很熟悉了,唯一我要说的就是这个Timer在激发Timer.Tick事件的时候,事件的处理函数是在程序主线程上执行的,所以在WinForm转载 2013-05-05 10:12:17 · 2155 阅读 · 0 评论 -
Excel和数据库数据互相转换
说明支持Mysql和SQL Server的表内的数据转换成Excel,yek原创 2014-05-28 22:37:52 · 1750 阅读 · 0 评论