c#
文章平均质量分 55
small5e4444
小菜鸟
展开
-
C#周立功CANET
最近用了下周立功的CANET,用了两个CANET没有在一路CAN总线上,两路CAN总线上都挂了设备。写这个的目的是要记下如何控制两个CANET设备。CANET有1,IP:192.168.0.1782,端口号:40013,设备索引:自己定4,第几路CAN:不用改启动CAN:public class CANstart {原创 2011-08-05 22:16:42 · 3383 阅读 · 2 评论 -
C# 串口操作系列(3) -- 协议篇,二进制协议数据解析
我们的串口程序,除了通用的,进行串口监听收发的简单工具,大多都和下位机有关,这就需要关心我们的通讯协议如何缓存,分析,以及通知界面。 我们先说一下通讯协议。通讯协议就是通讯双方共同遵循的一套规则,定义协议的原则是尽可能的简单以提高传输率,尽可能的具有安全性保证数据传输完整正确。基于这2点规则,我们一个通讯协议应该是这样的:头+数据长度+数据正文+校验 例如:AA 44转载 2012-01-14 13:43:08 · 803 阅读 · 0 评论 -
C# 串口操作系列(4) -- 协议篇,文本协议数据解析
上一篇已经介绍了协议的组成,一个协议,一般具有 :协议头+长度+数据+校验 , 文本格式可以直观的定义回车换行是协议的结尾,所以我们可以省略数据长度,增加协议尾。即: 协议头 + 数据 + 校验 + 数据尾 。文本方式的数据比较容易分析。如果数据缓存,可以考虑用StringBuilder。或是不缓存也可以。文本格式数据大多有换行结尾。稍微修改即可。例如分析常见的NMEA 0183格式的卫星转载 2012-01-14 13:47:02 · 587 阅读 · 0 评论 -
读写ini文件
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;namespace 读写ini文件{ public class Ini { // 声明INI文件的写操作函数 WritePrivatePr转载 2012-01-17 14:09:06 · 446 阅读 · 0 评论 -
C#DataGridView加时间控件
/// /// datagridview加时间控件 /// DateTimePicker dtp;//= new DateTimePicker(); Rectangle _Rectangle; //用来判断时间控件的位置 private void BindGvApply() {原创 2012-02-14 15:00:10 · 1410 阅读 · 0 评论 -
C#DataGridView中加ComboBox
/// /// 给dataGridView绑定 ComboBox /// /// /// private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) {原创 2012-02-14 15:24:52 · 1057 阅读 · 0 评论 -
C#Mdi子窗体只弹出一次
private void 我的工作ToolStripMenuItem_Click(object sender, EventArgs e)//点击目录弹出 窗体 { if (this.checkChildFrmExist("MyWork") == true) { return;原创 2012-02-14 15:30:58 · 851 阅读 · 0 评论 -
C#窗体程序自动更新-续
我资源里有例子http://download.csdn.net/detail/small5e4444/3626746最近用了下,把一些需要注意的地方,再给自己强调下第一步:把主程序的Program.cs中的代码修改了using System;using System.Collections.Generic;using System.Linq;using Sy原创 2012-02-16 22:24:50 · 2048 阅读 · 0 评论 -
C#线程中调用TIMER
Sytem.Windows.Forms.Timer类的一个实例, 该实例适合于单线程的环境。使用Sytem.Timers.Timer类更加合适, 该类适合多线程的环境。 private void button2_Click(object sender, EventArgs e) { Thread t = new Thread(new ThreadStart(wo原创 2012-03-24 10:12:33 · 4593 阅读 · 0 评论 -
C#一些经常忘的小东西
1 窗体中的 comboBoxcomboBox1.DataSource = dt_com;comboBox1.DisplayMember = "Buyer";comboBox1.ValueMember = "Id";2给dataGridView赋值,其中有自定义的列dt_umd = tu.SelectAll("order by id");DataTabl原创 2012-03-30 19:53:59 · 615 阅读 · 0 评论 -
多线程操作UI
实在不是有感而发,只是此类问题反复出现,自己每次都怕别人看不懂而写范例,实在累,就写一次,写完整注释,贴在博客。以后贴地址,方便一点。[c-sharp] view plaincopy//测试的窗体 public class TestForm : Form { //创建一个Button对象 private转载 2012-01-14 13:54:57 · 472 阅读 · 0 评论 -
C# 串口操作系列(2) -- 入门篇,为什么我的串口程序在关闭串口时候会死锁 ?
第一篇文章我相信很多人不看都能做的出来,但是,用过微软SerialPort类的人,都遇到过这个尴尬,关闭串口的时候会让软件死锁。天哪,我可不是武断,算了。不要太绝对了。99.9%的人吧,都遇到过这个问题。我想只有一半的人真的解决了。另外一半的人就睁只眼闭只眼阿弥佗佛希望不要在客户那里出现这问题了。 你看到我的文章,就放心吧,这问题有救了。我们先回顾一下上一篇中的代码转载 2012-01-14 13:40:44 · 667 阅读 · 0 评论 -
C# 串口操作系列(1) -- 入门篇,一个标准的,简陋的串口例子。
我假设读者已经了解了c#的语法,本文是针对刚打算解除串口编程的朋友阅读的,作为串口编程的入门范例,也是我这个系列的基础。我们的开发环境假定为vs2005(虽然我在用vs2010,但避免有些网友用2005,不支持lambda,避免不兼容,就用2005来做例子) 一个基本的串口程序,既然是个程序了。我们就先从功能说起,包含串口选择波特率选择打开关转载 2012-01-14 13:39:24 · 918 阅读 · 0 评论 -
C#周立功CANET-200T(新)
之前写过一个关于CANET的文章,现在有所改进 CANET-200T有两个CAN的端口,用程序分别给这两个口发送和接受数据;启动这两个端口,要把两个端口当作两个设备来启动。#启动CANET-200T的第一个端口 using System;using System.Collections.Generic;using System.Linq;using Syst原创 2011-12-21 15:03:00 · 3695 阅读 · 12 评论 -
C#Media播放器
Media player控件基本使用步骤如下:一、往控件箱中添加此控件:wmp.dll二、往窗体上拖控件三、wmp.URL=XXXX;wmp.play()即可。 平常应用就这三步就OK了。但是,我想写个播放器的话,就遇到了一些问题。在dotnet中使用非基于dotnet的控件,需要做一些额外的事,不过这些事vs已经帮我们做好了,当我们拖了此控件进窗体时,vs会自动调用 AxI转载 2011-12-15 09:18:22 · 984 阅读 · 0 评论 -
TreeView遍历上面的CheckBoxs
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;name转载 2011-12-15 09:34:38 · 869 阅读 · 0 评论 -
C#.NET中string与byte数组的相互转换
在项目的开发过程中遇到了这样的问题:业务逻辑层的方法接收了一条电文,就是一个字符串。我要按照一定的长度截取该字符串来获取相关信息,而这其中遇到了一点点小麻烦:接受的电文的格式是有一定的规范的,其中包含了供应商代码, 供应商名称(中文),供应商简称(中文),供应商名称(英文),供应商简称(英文),税号这六段信息。每段信息的长度也是固定的,比如供应商代代码占6位,供应商名称占60位,不够的用空格填充。转载 2012-01-11 16:01:31 · 5441 阅读 · 0 评论 -
字符转换(2,8,10,16进制,ASCII码)
罗列了一些用到的,各进制 以及 ASCII 间的转换,记录备忘一,先说说 2,8,10 ,16 各进制之间的转化System.Convert类中提供了较为全面的各种类型、数值之间的转换功能:几个比较常用的方法 1,Convert.ToInt32(string value, int fromBase) :将字符串转换为数字(如2进制0010>也就是2^1=2)转载 2012-01-11 16:05:50 · 1836 阅读 · 1 评论 -
string和byte[]的转换 (C#)
string类型转成byte[]:byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str );反过来,byte[]转成string:string str = System.Text.Encoding.Default.GetString ( byteArray );其它编码方式的,如System.Text.UT转载 2012-01-11 16:02:09 · 2893 阅读 · 0 评论 -
C#读取计算机串口
今天在改刷卡程序的时候,经理要求把计算机所有的COM口读出来,供程序界面选择。原来选择串口的时候写的是固定的数字,不太合理。在网上搜索了一下,大概有两种读取方法。一种是通过计算机注册表来读取串口信息,另外一种是用.NET下提供的SerialPort类读取。 方法一:从计算机注册表的特定位置读取出串口信息。 /// /// 从注册表获取系统串口列表转载 2012-01-13 16:27:29 · 4178 阅读 · 0 评论 -
SVN基本教程
如何快速建立Subversion服务器,并且在项目中使用起来,这是大家最关心的问题,与CVS相比,Subversion有更多的选择,也更加的容易,几个命令就可以建立一套服务器环境,可以使用起来,这里配套有动画教程。 本文是使用Subversion最快速的教程,在最短的时间里帮助您建立起一套可用的服务器环境,只需略加调整就可以应用到实际项目当中。 本教程分为以下几个部门,不仅仅是快速入门,最转载 2012-01-12 15:08:55 · 531 阅读 · 0 评论 -
C# 串口操作系列(5)--通讯库雏形
串口是很简单的,编写基于串口的程序也很容易。新手们除了要面对一堆的生僻概念,以及跨线程访问的细节,还有一个需要跨越的难题,就是协议解析,上一篇已经说明了:一个二进制格式的协议一般包含: 协议头 + 数据段长度 + 数据 + 校验一个Ascii格式的文本协议,一般包含: 数据头 + 正文 + 数据结束标识类似的命令可能很多,类似的代码也会重复写很多次。对于我,并不觉得这个有转载 2012-01-14 13:48:09 · 519 阅读 · 0 评论 -
C#单例模式
挺好用的,学习一共三个类,A,B,C三个类。A,B都要调用C中的方法,而C只能被初始化一次。在C中做下面的方法。C类=Singleton类publicclass Singleton{privatestatic Singleton instance;private Singleton(){}publicstatic Single原创 2012-04-24 01:12:48 · 421 阅读 · 0 评论 -
C#窗体Combobox简单用法(2)
想在combobox中直接添加内容,需要修改combobox的一个属性值DropDownstyle选为DropDown原创 2012-06-04 10:03:21 · 807 阅读 · 0 评论 -
C#将exe运行程序嵌入到自己的winform窗体中
以下例子是将Word打开,然后将它嵌入到winform窗体中,效果如下图: 注意:该方法只适用于com的exe(如word,Excel之类),.net的编的exe就不能用这用方法嵌入到窗体中。 using System;using System.Collections.Generic;using System.ComponentModel;转载 2012-07-22 23:50:26 · 10760 阅读 · 3 评论 -
C#文件流写入结构体
1、定义结构体namespace WindowsFormsApplication1{ [StructLayout(LayoutKind.Sequential, Pack = 1)] public struct fsnHead { [MarshalAs(UnmanagedType.ByValArray,原创 2015-04-03 16:22:13 · 4240 阅读 · 0 评论 -
C#使用GET、POST请求获取结果
转载:http://blog.csdn.net/pan_junbiao/article/details/9155497C#使用GET、POST请求获取结果,这里以一个简单的用户登陆为例。1、 使用GET请求获取结果1.1 创建LoginHandler.aspx处理页面[csharp] view plain copy转载 2016-07-22 15:38:09 · 725 阅读 · 0 评论 -
C#线程间操作无效: 从不是创建控件“dataGridView1”的线程访问它
搞了个程序,结果报错了,好几不写C#的程序,生疏了,做个备份在父窗体调用了子窗体的方法,该方法中用到了子窗体的控件,结果“线程间操作无效: 从不是创建控件“dataGridView1”的线程访问它”。解决方法:做个委托1、private delegate void SetDtCallback(DataTable dt);2、做个方法p原创 2016-11-16 16:12:36 · 7048 阅读 · 1 评论 -
C# 16进制与字符串、字节数组之间的转换
1.请问c#中如何将十进制数的字符串转化成十六进制数的字符串//十进制转二进制Console.WriteLine("十进制166的二进制表示: "+Convert.ToString(166, 2));//十进制转八进制Console.WriteLine("十进制166的八进制表示: "+Convert.ToString(166, 8));//十进制转十六进制Consol转载 2017-02-17 01:11:59 · 311 阅读 · 0 评论 -
C# 解决串口接收数据不完整
使 用缓存机制完成。首先通过定义一个成员变量List buffer = new List (4096);用来存放所有的数据,在接收函数里,通过buffer.AddRange()方法不断地将接收到的数据加入到buffer中,并同时对 buffer中的数据进行检验,如果达到一定的长度并且校验结果正确(校验方法在发送方和接收方一致),再进行处理。具体代码如下:代码 private List buffer转载 2017-02-22 23:37:34 · 7519 阅读 · 0 评论 -
C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部
好久没有上来了,今天一看,问题不少啊。主要是关于 之前发的一个文章“C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部”原网址"http://blog.csdn.net/small5e4444/article/details/7773404#comments",看了一下大家的留言,都说运行不了。。。我刚才特意又下载了一下我自己的程序,试了试,能运行啊。。。。下原创 2017-02-15 09:47:13 · 3474 阅读 · 0 评论 -
C#窗体Combobox简单用法(1)
才发现C#窗体得Combobox还有这两个属性值DisplayMember和ValueMember! 资源里有例子给Combobox付两个值,一个显示的值,一个后台得到的值。public partial class Form1 : Form { public Form1() { InitializeCompon原创 2011-10-18 14:48:34 · 29752 阅读 · 1 评论 -
C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部
资源里有例子:http://download.csdn.net/detail/small5e4444/4821582这是最近在做的一个项目中提到的需求,把一个现有的窗体应用程序界面嵌入到自己开发的窗体中来,看起来就像自己开发的一样(实际上……跟自己开发的还是有一点点区别的,就是内嵌程序和宿主程序的窗口激活状态问题)。在codeproject找到了一篇相关的文转载 2012-07-22 22:03:19 · 16953 阅读 · 23 评论 -
VS 2008 SmartDeviceProject 打成cab包实践
转载 :https://blog.csdn.net/boonya/article/details/19082747 按照如下所述步骤进行打包, 打包不成功时请检查: (1)程序所在路径是否含有中文; (2)新建cabProject Manufacturer属性是否是中文; (3)快捷方式是否为中文。1、创建CAB项目1、打...转载 2018-04-18 16:29:30 · 396 阅读 · 0 评论 -
C#日期格式化,时间
为了达到不同的显示效果有时,我们需要对时间进行转化,默认格式为:2007-01-03 14:33:34 ,要转化为其他格式,要用到DateTime.ToString的方法(String, IFormatProvider),如下所示:C#代码using System; using System.Globalization; String format="D";转载 2014-08-25 06:15:16 · 855 阅读 · 0 评论 -
wcf学习--建立最简单的WCF服务
在VS2010里建立一个最简单的WCF服务,基本流程如下: 一:新建WCF应用首先,新建一个WCF服务的应用(这里以framework 4.0为例),如下图所示, 建立完成之后,VS将自动生成一个最简单的WCF工程,在这个应用中,包含了最基本“契约(Contract)”以及“服务功能实现(Service)”.工程如下:转载 2014-07-29 23:57:22 · 587 阅读 · 0 评论 -
请确保此文件可访问并且是一个有效的程序集或COM组件
请确保此文件可访问并且是一个有效的程序集或COM组件 今天在项目中添加一个dll的引用时出现该错误。 解决方法:运行--cmd--regsvr32 dll的绝对路径名(路径实例:c:/dll/xxx.dll) 错误路径实例:E:/SEGE与动力能源接口/参考资料/精华/复件 NTNOET/zkemkeeper.dll转载 2014-07-29 23:35:38 · 5307 阅读 · 1 评论 -
C# 访问USB(HID)设备
二话不说,直接给代码,如果您真想做这方面的东西,还是稍微研究下,没有现成的好类用,就需要自己了解其原理 //以下是调用windows的API的函数 //获得GUID [DllImport("hid.dll")] public static extern void HidD_GetHidGuid(ref Guid Hid转载 2012-11-15 18:29:46 · 3839 阅读 · 6 评论 -
C#UserContral问题
C#组件编程的Component与Control之间的区别 (1)Component在Run Time时不能呈现UI,而Control可以在Run Time时呈现UI(但是Visual Studio 2005里的asp.net中的SqlDataSource是Control,但是它不能呈现UI)。 (2)Component是贴在容器Container上的,而Control原创 2012-11-20 13:33:28 · 1211 阅读 · 1 评论 -
DataGridView合并第一列
private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e) { // 对第1,2列相同单元格进行合并 if ((e.ColumnIndex == 0 ||e.ColumnIndex==1)&& e.Row原创 2013-11-26 16:16:01 · 2297 阅读 · 0 评论