dotNET
文章平均质量分 64
Kenall
.net cpp engineer
展开
-
代码片断
//不通过临时变量交换两个整数a^=b;b^=a;a^=b;-----------------------------------------------"^\d+$" //非负整数(正整数 + 0) "^[0-9]*[1-9][0-9]*$" //正整数"^((-\d+)|(0+))$" //非正整数(负整数 + 0)"^-[0-9]*[1-9]转载 2011-12-08 09:38:25 · 236 阅读 · 0 评论 -
关于句柄的一些相关函数
1.如何获得一个窗口的句柄?假设窗口Button1按钮(其他控件也可以),long a;a=button1.Handle;a的值就是窗口的句柄2.一些属性:CreateControl :强制创建控件,包括句柄和任何子控件CreateHandle :为窗体创建控件DestroyHandle :毁坏与该控件关联的句柄FromChildHandle :检索包含指定转载 2011-12-10 22:15:30 · 513 阅读 · 0 评论 -
关于C#执行多个SQL语句的一些操作——Note on Dec. 19th
(MySQL)对于查询语句,单查询结构利用ExecuteScalar()函数,可以减少占用资源。并且返回为一个object对象,可以自动释放。而函数ExecuteReader()方法,需要创建MySqlDataReader对象,并且使用完之后必须释放资源。 处理带参数的SQL语句之前做项目,对于带参数的SQL语句,一直利用string.Format()函数,生成需要的SQL语句原创 2011-12-19 10:03:31 · 1969 阅读 · 0 评论 -
c#链接MySQL数据库
C#链接MySQL数据库 //创建连接字段 private static string connstr = "Data Source = 127.0.0.1;Initial Catalog = wsn;User ID = root; Password = root"; //建立连接 public static MySqlConn转载 2011-12-10 22:16:21 · 437 阅读 · 0 评论 -
鼠标移动控制代码
声明变量保存状态:private bool m_bMouseDown=false;//鼠标MouseDown事件。此处省略了鼠标位置判断(只应在标题栏范围内才响应鼠标拖动窗体)private void Form_MouseDown(object sender,MouseEventArgs e){if(e.Button==MouseButtons.Left){ m_bMo转载 2011-12-10 22:17:17 · 1397 阅读 · 0 评论 -
一个Refresh()指令解决了困扰了我2天的问题
用GDI+通过数据的表格配置自动生成拓扑图,由于对C#GDI+开发缺少经验,只能尝试各种函数的实际效果和自己之前做VC++与VB一些经验。之前主要问题是,设置了自动绘制控件PictureBox布局和自动按照控件间位置生成连线。其中生成自动连线的函数,利用了参考来的例子,使用 Graphics g = this.panel1.CreateGraphics();转载 2011-12-13 10:24:51 · 1138 阅读 · 0 评论 -
MSCHART常用属性
1、ChartAreas:增加多个绘图区域,每个绘图区域包含独立的图表组、数据源,用于多个图表类型在一个绘图区不兼容时。 AlignmentOrientation:图表区对齐方向,定义两个绘图区域间的对齐方式。AlignmentStyle:图表区对齐类型,定义图表间用以对其的元素。AlignWithChartArea:参照对齐的绘图区名称。InnerPlotPosition:图转载 2011-12-13 10:25:33 · 513 阅读 · 0 评论 -
socket通讯之TCP
其实只要用到Socket联接,基本上就得使用Thread,是交叉使用的。C#封装的Socket用法基本上不算很复杂,只是不知道托管之后的Socket有没有其他性能或者安全上的问题。在C#里面能找到的最底层的操作也就是socket了,概念不做解释。程序模型如下:WinForm程序 : 启动端口侦听;监视Socket联接情况;定期关闭不活动的联接;Listener:处理Socket转载 2011-12-13 10:27:04 · 333 阅读 · 0 评论 -
note on the threadPool function
Here's two line for the thread pool with the same.System.Threading.ThreadPool.QueueUserWorkItem(new WaitCallback(ProcessDataThread), recBuffer);//sentence 1 new System.Threading.Thread(new Sys转载 2011-12-13 10:29:36 · 321 阅读 · 0 评论 -
notepad at Nov 23--------叠放层次函数
button1.Dock = DockStyle.Top; button3.Dock = DockStyle.Bottom; SendToBack() 将控件移到 Z 顺序的后面。 BringToFront()将控件移到 Z 顺序的前面。Z顺序指的是:在Windows中桌面以及Form都是二维的,也就是X和Y轴,那么Z轴在哪里呢? 其实,Z轴就是垂直于桌面和Form的方转载 2011-12-13 10:32:29 · 746 阅读 · 0 评论 -
关于MSCHART插件的一些功能函数记录——Note on Dec. 20
动态添加图表区域和图形曲线,当然,也可以通过视图进行操作。注意ChartArea和Series两个类的属性即可。以下为示意代码。ChartArea 图表区域Series 曲线using System.Windows.Forms.DataVisualization.Charting;//...ChartArea chartArea1 = new ChartArea();cha原创 2011-12-20 15:21:07 · 776 阅读 · 0 评论 -
note On Nov.21 about SQL Query
为DATATABLE添加行DataRow row; while (dt.Rows.Count { row = dt.NewRow(); row[0] = null; row[1] = DBNull.Value;转载 2011-12-13 10:31:45 · 377 阅读 · 0 评论 -
ToString方法
ToString()方法是最经常使用,也需要使用的方法,可是不少人都只用到简单的无参数的方法,而实际上ToString()有4个重载方法,你转换成不同样式的方法,他们都一个一个参数那就是格式参数,以显示成你需要的格式。如下,可以转换成7种格式的:C 货币 2.5.ToString("C") ¥2.50转载 2011-12-13 10:27:58 · 1092 阅读 · 0 评论 -
C++, C#引用的区别和C#的类为什么没有拷贝构造函数
不可否认, C++ 在过去十年乃至现在一直都是 windows 平台上的主流开发语言,而来势凶猛的 .NET 势必开辟一个崭新的局面,从目前的种种迹象来看, .NET 是大势所趋,而 C# 作为 .NET 平台上的第一开发语言自然备受关注,于是有很多程序员纷纷转向 C# ,这其中当然不乏 C++ 程序员。情况往往是这样,从一种语言过渡到另一种语言,哪怕是比较相似的语言,程序员也经常无意识地陷入原开转载 2011-12-21 13:13:59 · 742 阅读 · 0 评论 -
DLLImport 参数
DLLImport 和 StructLayout 属性具有一些非常有用的选项,有助于 P/Invoke 的使用。下面列出了所有这些选项:DLLImportCallingConvention您可以用它来告诉封送拆收器,函数使用了哪些调用约定。您可以将它设置为您的函数的调用约定。通常,如果此设置错误,代码将不能执行。但是,如果您的函数是 Cdecl 函数,并且使用 StdCall(转载 2011-12-14 15:18:13 · 869 阅读 · 0 评论 -
关于MSCHART多series、多ChartArea情况下坐标系的显示问题
手头的项目,六路实时温度,以2秒间隔采集实时数据,并显示在MSCHART上画出各自的温度曲线。采用2个ChartArea绘图区域,每个区域绘制三条SpLine曲线。测试中,由于当时只有开启了5个采集点,其中,series[0]为无效状态。显示图形为所有五路的信号曲线都可以正常的,但是,发生了一个奇怪的现象。那就是绘图区域chartArea1之中的,坐标系并没有随着时间变化而改变,而绘图原创 2012-01-29 15:10:03 · 4737 阅读 · 1 评论 -
字符与ASC码互转
//C#之中,由于底层的封装等因素,涉及到字符或者数据buffer处理的比起c/c++的操作麻烦很多。//字符转ASCII码:public static int Asc(string character){ if (character.Length == 1) { System.Text.ASCIIEncoding asciiEncoding =转载 2012-01-31 09:07:39 · 4252 阅读 · 0 评论 -
C#中in,out,ref的作用
In:过程不会改写In的内容 Out和out:传入的值不会被过程所读取,但过程可以写 ref:传入的值,过程会读,也会写 就象你把布料送到裁缝的一个收料箱(裁缝用这个区别是哪家客户) IN:这块布料,不能动,我取时还要原样(我取时会要不要这块料,是我自己的事,你管不着,但你不能把这块料做任何改变,你只能看这块料的质地、色彩等等,你要想改变这块料,那自已去照这块料的样子复制一个)转载 2011-12-10 22:13:52 · 464 阅读 · 0 评论 -
代理续——关于invoke
在多线程编程中,我们经常要在工作线程中去更新界面显示,而在多线程中直接调用界面控件的方法是错误的做法,Invoke 和 BeginInvoke 就是为了解决这个问题而出现的,使你在多线程中安全的更新界面显示。正确的做法是将工作线程中涉及更新界面的代码封装为一个方法,通过 Invoke 或者 BeginInvoke 去调用,两者的区别就是一个导致工作线程等待,而另外一个则不会。而所谓的“一面转载 2011-12-10 22:13:21 · 282 阅读 · 0 评论 -
多线程笔记
需要头文件Using System;Using System.Threading; 在.net framework class library中,所有与多线程机制应用相关的类都是放在System.Threading命名空间中的。如果你想在你的应用程序中使用多线程,就必须包含这个类。 我们通过其中提供的Thread类来创建和控制线程,ThreadPool类用于管理线程池等。(此外还提转载 2011-12-08 09:34:35 · 257 阅读 · 0 评论 -
代码片断2
---------------------------------------------------c#.net常用的小函数和方法集1、DateTime 数字型 System.DateTime currentTime=new System.DateTime(); 1.1 取当前年月日时分秒 currentTime=Syste转载 2011-12-08 09:38:56 · 282 阅读 · 0 评论 -
.NET的3C:CTS、CLS和CLR
.NET的3C:CTS、CLS和CLR.NET结合Java和COM解决方案两者优点来解决互操作性问题。类似于COM定义的标准二进制格式,.NET定义了一个称为通用类型系统Common Type System(CTS)的类型标准。这个类型系统不但实现了COM的变量兼容类型,而且还定义了通过用户自定义类型的方式来进行类型扩展。任何以.NET平台作为目标的语言必须建立它的数据类型与CTS转载 2011-12-08 09:40:37 · 459 阅读 · 0 评论 -
代码片断3
String str=Server.MapPath("文件名"); 在项目下建文件,StreamWriter sw=new StreamWriter(str);sw.Write("woaizhutingting");sw.Close();用户名:var pattern=/^[a-zA-Z]([\u4E00-\u9FA5]|[\uFE30-\uFFA0]|[_\a-zA-转载 2011-12-08 09:39:35 · 330 阅读 · 0 评论 -
获取运行文件路径
string appPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName); 另外一个不错方法: string appPath = System.IO.Path.GetDirectoryName(Enviro转载 2011-12-08 09:40:57 · 279 阅读 · 0 评论 -
c# 控件随窗体大小改变
1.使用一些布局面板,比如FlowLayoutPanel,TabLayOutPanel之类,但是缺点就是样式太死了。所以本人不采用。2.采用Dock和Anchor属性。这类虽然鼠标点几下在属性栏设置一下就好,但是缺乏灵活性。只有上下左右中间几种选择。3.采用Form_Resize()。这种方法最灵活,思路是窗体变化时,直接重写这个变化函数。那么如何写呢?第一要将原来窗体的属性以及各个控转载 2011-12-08 09:41:28 · 1485 阅读 · 0 评论 -
线程池创立多线程引发的一些异常记录,待解决
之前的一个项目设计到通讯,利用socket来实现网络通讯,采用UDP方式,为了减少丢包,采用线程池每接受一个UDP数据包就开辟一个线程来处理。我发现一个奇怪的现象,采用lock锁来进行同步时候,会发现定义的buff,即使在lock锁的内部,也会被改写。后来只好每次将读写入的buff,复制一个备份来操作备份,实现功能。后来写了个测试程序,不间断发送udp数据包给某一端口,在soc原创 2011-12-18 09:59:00 · 497 阅读 · 0 评论 -
数据成员与属性
class Stud{ public string name;}数据成员//data member\fieldclass stud{ public string name{get;set;}}属性//property---------------------------------------get //取值set //赋转载 2011-12-10 22:05:00 · 873 阅读 · 0 评论 -
form中显示GIF动态图片
private Bitmap bmp = null; private void gifTest_Load(object sender, EventArgs e) { bmp = new Bitmap("test1.gif"); ImageAnimator.Animate(bmp, new EventHandler(t转载 2011-12-10 22:06:08 · 651 阅读 · 0 评论 -
拖放操作
拖放操作是如何运作的拖放操作其实与剪切与粘贴(或复制与粘贴)没有什么不同,只不过它是使用鼠标而不是使用键盘。在这两类操作中,您都会拥有一个来源(也就是您剪切或复制的对象)以及一个目标(也就是您所粘贴之处)。不论是哪一种操作,在操作期间,都会在内存中存在数据的一份副本。剪切与粘贴会使用到剪贴板,而拖放则会使用到一个DataObject对象,其实DataObject对象就好比是一个私有剪贴板。转载 2011-12-10 22:06:40 · 498 阅读 · 0 评论 -
c# 定时器
Timer timer1; this.timer1.Interval = 1000; this.timer1.Tick += new System.EventHandler(this.timer1_Tick); private void timer1_Tick(object sender, EventArgs e) {转载 2011-12-10 22:11:26 · 456 阅读 · 0 评论 -
c#(asp.NET)获取文件路径
//获取当前进程的完整路径,包含文件名(进程名)。 string str = this.GetType().Assembly.Location; result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名) //获取新的 Process 组件并将其与当前活动的进程关联的主模块的完整路径,包含文件名(进程名)。 string str = System.Di转载 2011-12-10 22:14:31 · 2803 阅读 · 0 评论 -
时间常用处理
//以下的毫秒都采用最大997,而不是999 因为SQL SERVER的精度为3毫秒 //本月的天数 int daysInMonth= DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month); //本年的天数 是否是闰年转载 2011-12-10 22:16:56 · 363 阅读 · 0 评论 -
把.NET程序部署到没有安装.NET Framwork的机器上
把.NET程序部署到没有安装.NET Framwork的机器上 -------------------------------------------------------------------------------- 摘要 本文讨论了如何使用Windows Installer技术发布.NET程序,以及如何使用native代码判断目标机器上是否安装有.NET转载 2011-12-10 22:01:18 · 292 阅读 · 0 评论 -
精确定时
//定时textBox从输入第一个字符到回车之间的时间,用MessageBox显示 Stopwatch sw = new Stopwatch(); //.net里专门用于计时的类(using System.Diagnostics) private void textBox1_TextChanged(object sender, EventArgs e)转载 2011-12-10 22:07:23 · 295 阅读 · 0 评论 -
C#调用DLL文件时参数对应表
C#调用DLL文件时参数对应表Wtypes.h中的非托管类型非托管C语言类型托管类名说明HANDLEvoid*System.IntPtr32位BYTEunsigned charSystem.Byte8位SHO转载 2011-12-10 22:10:26 · 367 阅读 · 0 评论 -
Visual C#常用控件属性
[归纳]1、Button 属性:-----------------------引发click事件,执行click事件中的代码。//设置窗体的接受按钮this.AcceptButon = button1;//设置窗体的取消按钮this.CancelButton = button2;2、文本框控件 TextBox只读:textBox1.ReadOnly = true;原创 2012-02-03 11:23:35 · 859 阅读 · 0 评论