
C#
文章平均质量分 64
平凡就是福
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
wpf DataGrid 实现行重复点击
WPF DataGrid 重复单击行原创 2022-07-17 12:36:34 · 1319 阅读 · 1 评论 -
C# WPF实现异步发布事件,避免阻塞
WPF中直接使用Invoke发布事件时通常都是阻塞的,如果订阅事件的处理中含有耗时处理以及订阅事件过多时,会导致界面响应慢,用户体验不好,因此可以使用BeginInvoke来达到异步的方式。如,自定义事件:public delegate void TestConsoleMsgHandler(int test1, int test2, IntPtr test3);public event TestConsoleMsgHandler TestConsoleEvent;在需要发布事件的地方改为以下原创 2020-08-14 16:18:01 · 1455 阅读 · 0 评论 -
解决 WPF 中Popup弹窗的输入框控件无法定位输入法的问题(包括可拖动的popup)
为解决popup中输入法无法正常定位的问题,创建自定义popup控件,完整代码如下:using System;using System.Diagnostics.CodeAnalysis;using System.Runtime.InteropServices;using System.Security;using System.Windows;using System.Windows.Controls;using System.Windows.Controls.Primitives;us原创 2020-08-13 17:05:37 · 1173 阅读 · 1 评论 -
LinPhone-SDK编译环境搭建以及初步编译(win10系统)(一)
最近准备折腾下开源的sip通信客户端项目,打算编译下开源项目LinPhone-SDK,以备在win10系统中使用C#开发一款sip客户端,现在做下整理,准备开发环境搭建。LinPhone-SDK项目代码地址为:LinPhone-SDK,使用git克隆后,需要更新子模块。需要安装一下环境:MinGW cmake-3.15.5 GetGnuWin32 JDK NASM doxygen Python27(因为我要生成C#的封装类,所以使用2.7) Pystache (use pip i.原创 2020-06-28 10:51:23 · 5546 阅读 · 15 评论 -
WPF 使用互斥锁Mutex实现应用程序启动唯一实例,避免重复启动
C#中的Mutex是互斥锁,位于命名空间System.Threading中,它是一个互斥的对象,同一时间只有一个线程可以拥有它,该类还可用于进程间同步的同步基元。在系统运行过程中,如果当前有一个线程或者进程拥有它,在没有释放之前,其它线程或进程是没有权利拥有它的,并且使用其构造函数创建对象时设置的name是在系统中唯一的,如:/*创建具有唯一名称的互斥锁*/AppMutex = new Mutex(true, "TopToolsApp", out var createdNew);其中名称“Top原创 2020-06-10 11:46:09 · 2182 阅读 · 0 评论 -
C# 应用程序设置运行时自动获取管理员权限,不显示uac提示
最近需要在项目中使用管理员账户权限的功能,索性在编译时就设置好,发布时无需再进行手动设置获取管理员权限,具体步骤如下,打开启动的项目属性,选择安全性设置,勾选ClickOnce设置,如下图:保存项目设置,然后在解决方案中,展开项目properties选项:可以看到多了个app.manifest文件,编辑改文件,如下图:更改 level 为“requireAdministrator”,设置 uiAccess为false,保存编译、运行,程序运行后自动已管理员身份运行,并且不显示请求权.原创 2020-06-09 10:52:44 · 3204 阅读 · 0 评论 -
地图坐标系相互转换(WGS-84、GCJ-02、BD-09)
地图坐标系WGS-84、GCJ-02、BD-09的相互转换,详情请访问我的博客:https://www.vcblog.top/article/399/原创 2018-07-28 13:20:28 · 21246 阅读 · 0 评论 -
C#学习笔记汇总——持续更新
C#学习笔记汇总目录列表——持续更新C#定时器、计时器C#获取系统时间及格式化时间C#ListBox使用介绍C#DataGridView使用C#获取程序路径以及系统环境变量C# 读取xmlC#进制转换C#实现经纬度转换,大地坐标系转为火星坐标系C#排序算法C#实现窗口间消息通信C#实现异步socket通信1 跨线程安全调用控件方法如下: /// ...原创 2018-03-21 00:00:00 · 222 阅读 · 0 评论 -
C# 读取xml
注:本文内容来自互联网,具体出处已忘记,原作者莫怪。在程序中访问进而操作XML文件一般有两种模型,分别是使用DOM(文档对象模型)和流模型。使用DOM的好处在于它允许编辑和更新XML文档,可以随机访问文档中的数据,可以使用XPath查询,但是,DOM的缺点在于它需要一次性的加载整个文档到内存中,对于大型的文档,这会造成资源问题。流模型很好的解决了这个问题,因为它对XML文件的访问采用的是流的概...原创 2018-03-18 00:00:00 · 193 阅读 · 0 评论 -
C# DataGridView使用介绍
1 进行自动编号,与数据无关DataGridView属性列表的事件选择RowPostPaint事件,双击自动添加事件,处理代码如下: /// <summary>/// 自动编号,与数据无关/// </summary>/// <param name="sender"></param>/// <pa...原创 2018-03-18 00:00:00 · 278 阅读 · 0 评论 -
C# 定时器,计时器
多线程计时器System.Threading.TimerSystem.Timers.Timer多线程计时器比较强大,精确,而且可扩展性强;单线程计时器比较安全,对于更新 Windows Forms controls或者WPF这种简单任务来说更方便。System.Threading.Timer是最简单的多线程计时器。在下面的例子中,定时器在5秒后开始定时1秒的调用Tick方法。 ...原创 2018-03-21 00:00:00 · 612 阅读 · 0 评论 -
MissionPlanner-开发历程-1
1 Mission Planner 简介Mission Planner是使用C#开发的开源飞控地面站软件,使用MavLink通信协议,浏览官方网站。Mission Planner是ArduPilot开源自动驾驶项目的全功能地面站应用程序。Mission Planner项目代码已在github上进行开源,前往github克隆项目代码。2Mission Planner开发进行Mission...原创 2018-03-23 00:00:00 · 5151 阅读 · 2 评论 -
C#ListBox使用介绍
1 自动滚动到底部方法方法一: this.listBox1.Items.Add("new line"); this.listBox1.SelectedIndex = this.listBox1.Items.Count - 1; this.listBox1.SelectedIndex = -1; 123 ...原创 2018-03-24 00:00:00 · 987 阅读 · 0 评论 -
C#获取系统时间及格式化时间
C#获取系统时间函数列表以及各种输出格式获取当前系统时间: DateTime dt = DateTime.Now; 1 DateTime dt = DateTime.Now; 以下为各种日期格式输出示例: string timeStr = dt...原创 2018-03-24 00:00:00 · 727 阅读 · 0 评论 -
C#获取程序路径以及系统环境变量
C#获取程序路径以及系统环境变量获得当前执行的exe的文件名。 string str1=Process.GetCurrentProcess().MainModule.FileName; 1 string str1=Process.GetCurrentProcess().MainModule.FileN...原创 2018-03-28 00:00:00 · 411 阅读 · 0 评论 -
C#进制转换
16进制字符串转16进制字节数组 /// <summary> /// 16进制字符串转16进制字节数组 /// </summary> /// <param name="hexString">16进制字符串</param>/// <param name="size">16进制字...原创 2018-03-28 00:00:00 · 200 阅读 · 0 评论 -
C#实现窗口间消息通信
C#实现不同窗口间的消息通信有时候我们需要在一个程序中向另外一个窗口传递数据,以实现不同窗口间的数据通信,下面介绍两种通信方式,一种是使用窗体的消息处理机制,另一种是使用委托实现消息通信。1 重写窗体消息发送机制来发送自定义消息首先创建一个窗口程序A,添加数据发送以及打开窗口B的按钮,并重写消息发送函数,如图:窗口程序A代码如下: using System;usi...原创 2018-03-29 00:00:00 · 1065 阅读 · 0 评论 -
C#实现异步socket通信
C#异步socket通信我们在开发网络通信软件的时候,都需要实现异步的通信,有效的提高通信效率,下面来介绍下C#中异步socket通信的实现方式。服务器端处理方式首先定义一个用于函数回调传递的参数实体类: public class StateObject{ // 保存的socket连接 public Socket workSocket = null; // 接收...原创 2018-03-29 00:00:00 · 1042 阅读 · 0 评论 -
使用wpf开发数据库管理工具(二)
上一节我们简单的搭建了一个wpf应用,进行数据库开发,并且搭建了一个简单的程序界面,尝试了一下数据库连接的操作,这一节,我们开始逐步深入的通过C#进行MySQL数据库的使用。使用配置文件为了方便以后的程序扩展,我们使用配置文件来进行数据库连接参数的设定,通过使用配置文件有一个好处,就是可以在不需要重新编译程序的前提下进行程序参数的改变。程序配置文件一般使用文本文件txt、ini、xml等等,...原创 2018-04-02 00:00:00 · 664 阅读 · 0 评论 -
C# json使用之Json.NET(1)
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式, 人类很容易读写。 机器很容易解析和生成。 它是基于JavaScript编程语言的一个子集,标准ECMA-262第3版 - 1999年12月。JSON是一种完全独立于语言的文本格式,但使用C语言系列程序员熟悉的约定,包括C语言 ,C ++,C#,Java,JavaScript,Perl,Python等等。...翻译 2018-08-01 00:00:00 · 1130 阅读 · 0 评论 -
C# json使用之Json.NET(3)
以下为json.net的一系列参数设置以及属性设置说明,翻译自官方文档。有错误的地方请指正。接前篇。Serializing Dates in JSON在JSON中序列化日期在JSON中序列化日期JSON中的DateTimes很难使用。问题来自JSON规范本身:JSON中没有日期的文字语法。 规范包含对象,数组,字符串,整数和浮点数,但它没有定义日期的标准。Dates and Js...翻译 2018-08-03 00:00:00 · 1129 阅读 · 0 评论 -
C# json使用之Json.NET(2)
以下为json.net的一系列参数设置以及属性设置说明,翻译自官方文档。有错误的地方请指正。Serialization Attributes序列化属性序列化属性属性可用于控制Json.NET如何序列化和反序列化.NET对象。JsonObjectAttribute -放在类上以控制它们应该如何序列化为JSON对象。JsonArrayAttribute -放置在集合上以控...翻译 2018-08-03 00:00:00 · 1176 阅读 · 0 评论 -
C# json使用之Json.NET(5)——特别篇
以下内容介绍了json.NET的性能优化问题、使用JSON模式验证JSON、手动读写JSON,Json.NET提供了JsonReader和JsonWriter类、json和xml之间的转换。性能提示开箱即用的Json.NET比DataContractJsonSerializer和JavaScriptSerializer更快。 这里有一些提示,使它更快。优化内存使用为了使应用程序保持一致,...翻译 2018-08-03 00:00:00 · 1410 阅读 · 0 评论 -
C# json使用之Json.NET(4)——LINQ to JSON
LINQ to JSON是一个用于处理JSON对象的API。 它的设计考虑了LINQ,以便快速查询和创建JSON对象。 LINQ to JSON位于Newtonsoft.Json.Linq命名空间下。示例: JObjecto=JObject.Parse(@"{'CPU':'Intel','Drives&#...翻译 2018-08-03 00:00:00 · 1330 阅读 · 0 评论 -
C# 使用Json.NET来序列化json
Json.NET是一种流行的.NET高性能JSON框架,C#中可以使用Newtonsoft的Json.NET进行对象的序列化与反序列化。C#中通过使用json.net可以快速的生成json和解释json,json.net的具体使用教程可以参考我的博客:C# json使用之json.NET 系列文章,文章介绍了json.net的使用教程,包括json的序列化与反序列化、json的序列化设置。...原创 2018-08-03 16:18:08 · 1111 阅读 · 0 评论 -
C# json使用之Json.NET(6)——使用示例
以下为json.net的使用示例程序代码,序列化和反序列化json。摘自官方使用示例。序列化和反序列化对象进行C#对象的序列化和反序列化,对象可以是类、数组、集合、列表等等,列表在json中序列化后为数组形式。序列化时,还可以决定是否进行输出的json格式化,使用Formatting.Indented参数。 publicclassAccount{publ...翻译 2018-08-08 00:00:00 · 677 阅读 · 0 评论 -
使用websocket-sharp实现websocket连接
由于最近的项目需要,在C#中使用websocket进行消息推送服务,本着不重复造轮子的原则,在github上找到了两款可用的开源类库,Fleck和websocket-sharp,经过对比,决定使用websocket-sharp(提供服务器与客户端的使用)来实现项目需求,现把具体使用情况记录如下:开启websocket服务 ///<summary>///监...原创 2019-05-26 00:00:00 · 4275 阅读 · 0 评论 -
C#排序算法
1 冒泡排序 namespace 数组排序{ class Program { static void Main(string[] args) { int temp = 0; int[] arr = {23, 44, 66, 76, 98, 11, 3, 9, 7}; ...原创 2018-03-28 00:00:00 · 170 阅读 · 0 评论 -
C# wpf视频控件实现全屏显示功能(vlc全屏、视频SDK全屏)
由于最近需要在项目中使用视频全屏的功能,而因为使用了vlc来实现视频播放处理,vlc自带的视频全屏功能需要在顶级窗口中使用,经过测试,一直无法实现全屏。项目中需要实现多屏视频显示,因此采用了wpf的自定义控件的形式,控件中使用vlc的视频处理,如下部分代码所示: <WindowsFormsHost x:Name="PART_PlayerHost" Background="#131A1D"> <local:VideoFormControl x:Name="Video原创 2020-05-29 09:44:52 · 6757 阅读 · 1 评论