
C#大全
文章平均质量分 51
任玉腾
这个作者很懒,什么都没留下…
展开
-
学习MvvmLight工具
最近学习了一下MvvmLight,觉得有些功能还是挺有特色的,所以记录一下首先新建也给WPF程序然后在Nuget里面安装MvvmLightLib 包,安装上面那个也可以,但是安装上面那个会自动在代码里面添加一些MvvmLight的demo ,安装MvvmLightLib比较纯净安装完成后,在App.cs 里面重写一下OnStartup方法,让程序启动的时候初始一下IOC容器和DispatcherHelper。(其实这两步也可以放在其他地方,比如放在构造函数里面或者其他地方也是可以的,没有特殊要求)原创 2023-03-09 14:19:07 · 939 阅读 · 0 评论 -
C# 查询科星继电器的输入端状态以及控制输出
C# 用TCP模式操作科星继电器,这个用的比较多,所以记录一下原创 2023-02-27 09:22:19 · 660 阅读 · 1 评论 -
在winform中使用websocket
这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,然后HTTP请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的宽带等资源。在设计模式中,socket其实就是一个门面模式,它把复杂的TCP/IP协议隐藏在socket接口后面,对用户来说,一组简单的接口就是全部,让socket去组织数据,以符合指定的协议。与HTTP不同的是,Websocket需要先创建连接,这就使得其成为一种有状态的协议,之后通信时可以省略部分状态信息。(开始前的HTTP握手)转载 2023-01-16 16:00:35 · 2903 阅读 · 0 评论 -
C# 控制科兴16路继电器
/// /// 操作继电器 /// /// 表示打开还是关闭 /// 操作第几路继电器(从1到16) private void OperationRelay(bool isOpenOrClose ,int Ch) { byte[] sBytes = new byte[] { 0xCC原创 2022-12-05 14:36:39 · 876 阅读 · 1 评论 -
C# Winform中无焦点状态下获取键盘输入或者USB扫描枪数据
在无焦点的情况下获取按键事件转载 2022-08-11 10:25:28 · 4320 阅读 · 2 评论 -
winform打印图片
winform打印图片原创 2022-06-06 15:35:09 · 1368 阅读 · 0 评论 -
在WPF的程序中,嵌入其他进程的窗体
我最近遇到了这样一个问题,就是我的WPF程序中,需要用到32位的COM组件。所以我的WPF程序也是要32位的。但是32的程序的逻辑内存最多只有2G,因此,当这个COM组件比较吃内存的时候,程序就会出现内存不够的情况,就会出现异常。因此,我的解决方案是使用winform来调用这个COM组件。然后WPF程序再调用winform。这样,就把内存分配到了多个进程当中,就不会出现一个进程使用太多内存的情况。下面是WPF实现此功能的简单代码窗体XAML代码<Window x:Class="WPF_O原创 2022-01-16 16:55:16 · 4337 阅读 · 2 评论 -
C#最简单好用的日志方法
/// <summary> /// 用来做软件的日常信息保存 /// </summary> /// <param name="strLog"></param> public static void InfoLog(string strLog) { try { string basepat...原创 2021-12-29 16:29:40 · 1182 阅读 · 0 评论 -
C#获取网络时间
public static DateTime GetNetDateTime() { WebRequest request = null; WebResponse response = null; WebHeaderCollection headerCollection = null; string datetime = string.Empty; ...原创 2021-05-10 23:56:05 · 2254 阅读 · 0 评论 -
C# 读取CSV文件,将CSV文件读取到DataTable中
/// <summary> /// //读CSV文件类,读取指定的CSV文件,可以导出DataTable /// </summary> public class CsvStreamReader { private ArrayList rowAL; //行链表,CSV文件的每一行就是一个链 private string fileName; //文件名 //public DataTable csvD...转载 2021-04-27 15:05:57 · 1797 阅读 · 0 评论 -
使用OWIN 为WebAPI 宿主 跨平台
OWIN是什么?OWIN的英文全称是Open Web Interface for .NET。如果仅从名称上解析,可以得出这样的信息:OWIN是针对.NET平台的开放Web接口。那Web接口是谁和谁之间的接口呢?是Web应用程序与Web服务器之间的接口,OWIN就是.NET Web应用程序与Web服务器之间的接口。为什么需要这样一个接口呢?因为.NET Web应用程序是运行于Web服务器之中的,.NET Web应用程序需要通过Web服务器接收用户的请求,并且通过Web服务器将响应内容发送用户.转载 2021-04-07 14:17:04 · 629 阅读 · 0 评论 -
Winform程序窗体间的跳转
关于Winform程序窗体间的跳转问题:对于编程新手来讲,winform程序窗体间的跳转,经常会出现一些异常,或是弹出重复的窗口,如下图下面给出一种方法,可以很好的避免掉这样的问题:首先,在主程序Program中,定义一个“找窗体或是创建窗体”的方法,见以下代码: 1 namespace FormJump 2 { 3 static class Program 4 { 5 public static List<Form> form转载 2021-04-07 13:54:45 · 3999 阅读 · 2 评论 -
C# 几个不错的NPIO 的helper类
https://www.cnblogs.com/qizhelongdeyang/p/3417599.htmlhttps://www.cnblogs.com/su-king/p/9958043.html转载 2020-08-05 08:54:30 · 843 阅读 · 0 评论 -
C# 获取UTC时间戳,以及将时间戳转换成时间
public class UtcTime { /// <summary> /// 获取时间戳 /// </summary> /// <returns>UTC</returns> public static long GetTimeStamp()...原创 2020-04-26 15:37:34 · 5626 阅读 · 0 评论 -
C# 创建程序的快捷方式的代码
/// <summary> /// 生成某个exe程序的快捷方式 /// </summary> /// <param name="lnkFilePath">快捷方式的路径,例如:C:\Users\Public\Desktop\abc.lnk</param> /// &l...原创 2020-04-20 13:23:32 · 614 阅读 · 0 评论 -
vs 附加到进程找不到iisexpress的解决方法
今天想使用vs调试IIS的网站,但是附加到进程时,一直找不到iisexpress这个进程。显示所有用户进程、使用管理员运行VS都不行。折腾了半天,最终解决了这个问题我的应用程序池都是4.0版本的,所以附加到代码类型要选择4.0版,刷新以后就能找到iisexpress进程了附加了这个进程,就可以调试IIS中对应的网站了。亲测有效...原创 2019-11-20 11:54:01 · 4722 阅读 · 0 评论 -
C# 实现软件授权码的功能
对于一个商业软件来说,授权码这个功能必不可少。我这里采用CPU序列号加硬盘标识来判断是否授权。完整代码如下:using Microsoft.Win32;using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;us...原创 2019-10-23 12:19:45 · 14922 阅读 · 6 评论 -
让用户可以拖动winform无边框窗体的位置
winform项目为了美观通常会把窗体的边框隐藏掉,然后再用一个panel当作标题栏,但这样用户就无法拖动窗体的位置了,这个问题可以用MouseMove和MouseDown事件解决。代码如下 private Point mPoint; private void topPanel_MouseMove(object sender, MouseEventArgs e)...原创 2019-06-20 10:39:09 · 622 阅读 · 0 评论 -
让无边框winform窗体可以拖动窗体大小
对美观程度要求比较高的项目都会把winform的边框隐藏掉然后重写一个边框。这样问题就来了,把winform的边框隐藏后,用户就无法改变窗体大小,也无法拖动窗体位置。经过摸索,最终解决了这些问题,以下代码可以解决用户无法改变窗体大小的问题。 public class BaseForm : Form { const int HTLEFT = 10; ...原创 2019-06-19 17:36:59 · 3121 阅读 · 0 评论