
c#
lcawen
不欲平凡,提步征程,成长中
展开
-
c# 单行文字过长,换行方法
c# 不严格限制一行代码有多长,但是,为了阅读方便,我们经常是限制代码的字符不超过100个字符,这就需要进行换行了:如果是字符形式,我们可以使用“+=”进行连接,同样可以通过StringBuilder的Append方法进行连接,但是,c#提供了更便捷的方法:在有空格或者“)”的位置直接“Enter”就可以了原创 2012-09-03 15:18:30 · 3263 阅读 · 0 评论 -
sql+datagridview 更新数据库
1. 有时候,会遇到datagridview中cell的值更新了,但是通过SqlDataAdapter.Update(dt)却不能够更新数据,比如在datagridview的cellvaluechanged的事件中直接使用,是不能立即更新的,在cellendedit事件中也是一样,以下是解决办法:在cellendedit事件中:this.Validate();//有效性,此句很重要Sq原创 2013-04-11 17:30:39 · 1404 阅读 · 1 评论 -
c# 通过流导出数据库数据,写进excel中
从网络上看到excel一条一条的插入数据很慢,有人通过流写入excel,速度很快,具体原理如下:1.使用的是StreamWriter sw = new StreamWriter(path, false,Encoding.GetEncoding("gb2312"));最终生成文件2.使用 StringBuilder sb = new StringBuilder();类把查询出来的数据组合为原创 2013-05-03 11:03:06 · 2038 阅读 · 1 评论 -
c# 更改注册表开机启动+mutex(互斥,同一时间同一台电脑只能运行一个程序)
1.更改注册表,使开机启动在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run下增加一个键,键值为程序路径即可,代码如下: string strName = Application.ExecutablePath; string strnewName = strName.Substr原创 2013-04-12 12:56:32 · 1602 阅读 · 1 评论 -
c# winform窗口自适应各种分辨率类
近期做项目时,遇到开发的winform在自己电脑上可以正常显示,共享到其他电脑就事儿不能显示了:1.当两个电脑分辨率相同时,无法显示完全,请检查form的autoscalemode属性是否为none,并设为none2.分辨率不同时,可直接在form的构造函数中调用初始化函数之后, 加上一句AutoReSizeForm. SetFormSize(this);(对于自定义控件usercontr原创 2013-05-29 14:45:37 · 4946 阅读 · 2 评论 -
从实例谈OOP、工厂模式和重构
from 张逸:晴窗笔记有了翅膀才能飞,欠缺灵活的代码就象冻坏了翅膀的鸟儿。不能飞翔,就少了几许灵动的气韵。我们需要给代码带去温暖的阳光,让僵冷的翅膀重新飞起来。结合实例,通过应用OOP、设计模式和重构,你会看到代码是怎样一步一步复活的。为了更好的理解设计思想,实例尽可能简单化。但随着需求的增加,程序将越来越复杂。此时就有修改设计的必要,重构和设计模式就可以派上用场了。最后转载 2013-07-11 17:03:25 · 839 阅读 · 1 评论 -
c# time of method's excuate
//测试一段程序执行大概需要多久 System.Diagnostics.Stopwatch SP1 = new System.Diagnostics.Stopwatch(); SP1.Start(); method(); SP1.Stop(); System.TimeSpan T原创 2013-06-26 15:39:20 · 1047 阅读 · 1 评论 -
c# solve:program don't exit when computer shut down
当windows操作系统执行关闭动作时,它会发送给各个正在运行的应用程序一个消息WM_QUERYENDSESSION,告诉应用程序要关机了,如果反馈回来的消息值为1,那么windows操作系统就会自动关闭.因此,通过截获WM_QUERYENDSESSION消息,就能实现自动退出程序.const int WM_QUERYENDSESSION = 0x0011;//////原创 2013-07-01 09:24:04 · 814 阅读 · 1 评论 -
c# datagridview‘s learn
c# 一串数字“1122331111155”,要输出到DataGridview控件上,但是要逐个数字读取,如果上一个数字与下一个相同,则排成一列,不相同,则另外排成一列。如“1122331111155”,输出的效果是,列一:11,列二:22,列三:33,列四:11111,列五:55。如下: string numberStr = "1122331111155";原创 2013-07-19 15:15:13 · 913 阅读 · 1 评论 -
c# 验证码生成
今儿有一个任务是输出一串字符,要求用GDI画出于是: Bitmap bm = new Bitmap(200, 200); Graphics g = Graphics.FromImage(bm); g.Clear(Color.Transparent);//画背景色 g.DrawString("as原创 2013-08-01 09:09:39 · 940 阅读 · 1 评论 -
C# WinForm判断程序是否以管理员身份运行
如果程序不是以管理员身份运行,操作本地文件会提示:System.UnauthorizedAccessException异常 Vista 和 Windows 7 操作系统为了加强安全,增加了 UAC(用户账户控制) 的机制,如果 UAC 被打开,用户即使是以管理员权限登录,其应用程序默认情况下也无法对系统目录,系统注册表等可能影响系统运行的设置进行写操作。这个机制大大增强了系统的原创 2013-01-23 16:59:40 · 3821 阅读 · 1 评论 -
c# image GDI+发生一般性错误 & c# wpf use winform‘s Image
c# image GDI+发生一般性错误 & c# wpf use winform‘s Image原创 2013-10-18 10:05:08 · 2086 阅读 · 1 评论 -
c# 以类名为参创建父类相同的类的实例
以以下为例:Form1,Form2,Form3……继承自Form,可以通过Form f=new Form1();等建立Form子类的实例,如果太多子类,希望通过传递一个参数,比如子类类名就可以建立实例,有什么办法?方法一:利用反射string str=“命名空间.Form1(Form2……)”;Type t=Type.GetType(str);Form f=Activator.原创 2013-11-22 11:31:05 · 1447 阅读 · 2 评论 -
c# 保留浮点数的n位有效数字
注意:C/C++的输出可能在不同编译器下会有不同结果。如果你的编译器和我的不一样,建议复制C/C++代码并在自己的编译器上运行下看结果。 下面所有C#代码由Visual C# 2010 Express编译运行下面所有C/C++代码由Visual C++ 2010 Express编译运行 C++的浮点输出:默认保留6位有效数字代码:double arr[4]原创 2013-01-11 17:08:00 · 5940 阅读 · 3 评论 -
c# datetime string sort Reverse
一下算不上新发现,只是由于自己是转行做的软件,基础知识不甚丰富,也希望能给大家写帮助吧:1.datetime比较: 比如,datetime dt1,dt2;可以直接通过if(dt1>dt2)来比较的,如果,给转化为字符串,就多余了; 当然,可以通过DateTime.Today.Date.ToOADate()给转化成十进制数来进行比较; 如果时间我们保存成了字符串,原创 2012-11-02 16:14:27 · 1329 阅读 · 1 评论 -
c# 动态加载dll文件,并实现调用其中的方法
以下是测试代码:新建一个classlibrary,包含两个类class1和class2,这两个类中分别有一个方法,都是返回一个字符串,代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace mydll{ public cla原创 2012-10-16 09:29:03 · 6697 阅读 · 2 评论 -
c# use Visual Studio Command create xml's serialitation file by xml file
1.打开Visual Studio Tools下的Developer Command Prompt for VS20122.通过cd /d C:\Users\Administrator\Desktop dos命令进入将要序列化的xml文件存放路径3.通过xsd /c a.xml 命令把C:\Users\Administrator\Desktop\a.xml序列化成为C:\Users\Adm原创 2014-04-15 10:21:27 · 873 阅读 · 2 评论 -
c# winform实现dll加载时注册
近期遇到一个纠结的问题:在运行winform时,由于使用了一个他人开发的dll动态链接库,而这个库是必须要在本地电脑注册以后才可以使用,当然,我的电脑是注册了的,而开发的程序使用者电脑……于是……先提供三种方法:1,新建一个txt文件,输入如下;Regsvr32 XXX.dllRegsvr32 XXXdll然后保存为“注册控件.bat”,这种方法必须要确保你所注册的dl原创 2013-01-08 17:16:28 · 2373 阅读 · 0 评论 -
Web.Config中节点的解释
在开发中经常会遇到这样的情况,在部署程序时为了保密起见并不将源代码随项目一同发布,而我们开发时的环境与部署环境可能不一致(比如数据库不一样),如果在代码中保存这些配置这些信息部署时需要到用户那里更改代码再重新编译,这种部署方式非常麻烦。在.net中提供了一种便捷的保存项目配置信息的办法,那就是利用配置文件,配置文件的文件后缀一般是.config,在asp.net中配置文件名一般默认是web.c原创 2012-09-06 17:19:53 · 749 阅读 · 0 评论 -
c# 实现Label拖动的两种方法
在实现Label控件拖动,这里介绍两种有效地方法:其一,通过调用api,通过消息来实现拖动(需要调用命名空间using System.Runtime.InteropServices;): [DllImport("User32.DLL")] public static extern int SendMessage(IntPtr hWnd, uint Msg,原创 2012-09-04 16:38:48 · 6348 阅读 · 0 评论 -
access数据库备份c#
备份程序环境目录下的access数据库,以年月日++"BackUp.mdb"命名,代码如下:(其实就是复制数据库)string CurrentDatabasePath = Environment.CurrentDirectory + @"\gongqin.mdb"; string test = DateTime.Now.Year.ToString() + "年" + "-" +原创 2012-09-06 15:17:40 · 1386 阅读 · 0 评论 -
控件显示在原有控件上方 c#
首先,理论:先添加的控件会在最上面,即当两个控件重叠时,先使用 this.controls.Add() 的控件放在最上面,可见次序是由index决定的。我们可以使用可 BringToFront() 方法将控件直接置于最上方,使用 SendToBack() 方法将控件置于最下方。当多个空间重叠时,我们还可以使用Controls的Remove和Add方法实现更改显示次序,如下:void S原创 2012-09-10 09:50:52 · 2870 阅读 · 0 评论 -
c# 关闭excel进程
excel的application app,直接使用app.Quit();app=null;有时候不能完全关闭excel进程,而通过下面的Kill方法即Kill(app);则可以让正在处理的excel从进程中消失。引用命名空间using System.Runtime.InteropServices; [DllImport("User32.dll", CharSet = Cha原创 2012-10-09 13:26:13 · 1567 阅读 · 0 评论 -
c# 用反射实现winform界面动态存储理论知识
1 概述在数据库管理软件开发过程中,个性化的界面设计是一个成功软件产品必不可少的重要组成部分,定制界面设计就是界面控件的布局、控件属性的设置,当然 要考虑界面控件的合理存储的问题。但是传统的软件界面设计为了满足客户的需求,程序员需要开发出各种各样的用户界面,这样既提高软件的开发成本,也浪费大 量的人力和物力,其实那些界面功能大致相同,只是表现形式不同。本文提出一种使用反射技术获取运行时的界原创 2012-10-29 16:12:56 · 1979 阅读 · 1 评论 -
c# + linq 判定GroupBox上的所有TextBox控件的Text为空
一个groupBox1,其中有多个textBox,如何判断 这些textBox的Text属性全值为空?如果使用原始的,一个一个的去遍历,有的烦了~推荐一种方法,使用linq语句解决,需加引用命名空间using System.Linq;(当然,winform窗体创建时就自动添加了):bool empty = groupBox1.Controls.CastControl>().Where(原创 2012-10-24 11:25:14 · 2466 阅读 · 2 评论 -
c# 利用反射给控件加载事件(以button为例)
具体的理论就不说了,上一篇博文大概介绍了,这里就直接上主要的代码吧: Control _Button = this.Controls["button1"]; //获取窗体中的button1 System.Reflection.MethodInfo _Info = this.GetType().GetMethod("button1_Click"原创 2012-10-29 17:03:09 · 4325 阅读 · 1 评论 -
c# winform取全屏幕大小
Winform,c#语句取(获取屏幕大小,包括全屏大小,除任务栏大小和全屏大小: 1.当前的屏幕除任务栏外的工作域大小 this.Width = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width; this.Height = System.Windows.Forms.Screen.PrimaryScr原创 2012-10-25 08:53:02 · 6209 阅读 · 2 评论 -
C# ComboBox实现不能输入,且下拉选框文本上有值
下拉框有DropDownStyle这一属性,把DropDownStyle类型选为DropDownList,则下拉框只能选择不能输入了。但是这时的下拉框是没有默认值的,即使在Text属性中输入默认值,也不起作用。就要在(某某某.Designer.cs)文件中修改。这是没有修改的: this.ComboBox1.Cursor = System.Windows.Forms.原创 2012-11-07 14:34:52 · 6996 阅读 · 2 评论 -
c# 实现图像180度旋转
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespac原创 2012-11-07 17:26:10 · 3392 阅读 · 1 评论 -
c# 调用API
1 DLLImport的使用using System;using System.Runtime.InteropServices; //命名空间class Example{//用DllImport 导入Win32的MessageBox函数 [DllImport("user32.dll", CharSet = CharSet.Un原创 2012-12-06 10:36:06 · 1628 阅读 · 1 评论 -
c# 动态实现xls,dwg等文件存取sqlserver数据库
有时,为了实现网络共享,我们可以采取数据库动态存取数据流的方式(数据库中的字段类型为image或者varbinary(Max)),管理文件,如下(一个winform中的测试代码):string path = @"C:\Users\SN\Desktop\数控板检验图.dwg";//测试的dwg文件名 string path1 = @"C:\Users\SN\Deskto原创 2012-10-16 10:38:12 · 1621 阅读 · 0 评论 -
c# 实现自定义属性改变触发自定义事件
直接上代码,内含说明(界面是两个文本框textbox1,textbox2,和一个button1,界面的Load事件,button的click事件)using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;us原创 2012-12-19 12:07:20 · 5563 阅读 · 1 评论 -
C# 判断当前系统是XP还是WIN7
直接提供Winform程序: OperatingSystem os = Environment.OSVersion; switch (os.Platform) { case PlatformID.Win32Windows: switch (os.Version.原创 2013-01-23 17:02:35 · 4388 阅读 · 1 评论 -
c# datagridview点击列头排序改为以数值大小排序
1.在使用 DataGridView时,对于数值列,默认的排序方式仍然是按照字符串方式进行如果需要按照数值型进行排序,有几种办法,其中一种就是重载SortCompare方法//重载_SortCompare方法 private void DataGridView1_SortCompare(object sender,DataGridViewSortCompare原创 2013-01-26 14:52:21 · 15497 阅读 · 4 评论 -
c# winform窗口一直置顶显示在桌面最上方的方法
一、在最前面:using System.Runtime.InteropServices;在定义部分引入下面两个函数:[DllImport( "user32 ")]private static extern IntPtr FindWindow(string lpClassName,string lpWindowName);[DllI原创 2013-01-25 10:13:53 · 18232 阅读 · 1 评论 -
平均分配问题
如果有需求负载均衡,在某些时候需要把某一种请求平均分配到各个服务器的时候,如何做到平均分配呢,如下是一种思路:var current = Interlocked.Increament(ref sequenct);//实现原子性的加减var index = current % 10;用于增减变量的并不是常用的Increment/Decrement过程,而是用了Interloc原创 2016-03-21 11:03:39 · 3191 阅读 · 1 评论