![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#
GreenHandBruce
本人有多年qt开发经验,欢迎技术交流weixin:13382893223
展开
-
手把手教你用VUE写个例子访问后端WebApi的接口获取数据并显示出来
本文接着上文《手把手叫你用VS2019写个WebApi(可以供网页、手机、电脑三端连接使用)从网页访问后端并在后端通过EF获取sqlserver中的数据》https://blog.csdn.net/weixin_43935474/article/details/132497256?spm=1001.2014.3001.5501上文中介绍了如何创建一个WebApi后端接口的例子,现在来写个网页端访问这个后端接口的例子。原创 2023-09-05 16:24:37 · 11218 阅读 · 0 评论 -
c#Invoke简单用法解决“线程间操作无效”
在form窗口类中,写一个子线程,然后再子线程中要操作窗口的控件,如果直接操作的话,会报异常“线程间操作无效”。原创 2023-02-14 20:01:15 · 1033 阅读 · 0 评论 -
c# winform 使用双缓存防止界面卡顿
【代码】c# winform 使用双缓存防止界面卡顿。原创 2022-10-01 11:51:42 · 799 阅读 · 0 评论 -
c# 自定义控件将鼠标事件传递到父控件
c# 自定义控件将鼠标事件传递到父控件原创 2022-08-22 09:46:19 · 1072 阅读 · 0 评论 -
c#提高datagridview刷新速度(两种方法计时对比)
datagridview刷新速度提升,10000行数据刷新提速效果明显原创 2022-06-16 18:05:33 · 5795 阅读 · 1 评论 -
c#浅拷贝与深拷贝自定义的类的List<>
c#深拷贝原创 2022-06-09 13:38:58 · 1403 阅读 · 0 评论 -
C#Datagridview使用小窍门——当用户要求加列的时候减少代码改动量
datagridview赋值的一般写法: for(int i=0;i<5;i++) { dataGridView1.Rows[i].Cells[0].Value = (i+1).ToString(); dataGridView1.Rows[i].Cells[1].Value = "Name"+(i+1).ToString(); dataGridView1.原创 2022-04-29 19:46:18 · 525 阅读 · 0 评论 -
c#字符串全角转半角
用c#编写程序时,用户在输入框输入的字符大部分情况下是半角,但有时候是全角,这时候我们在程序里面判定字符串匹配的时候就需要全角半角都自适应匹配才行,这就需要进行字符串的全角半角的转换,具体代码如下:/**/ // / // / 转半角的函数(DBC case) // / // /任意字符串 // /半角字符串 // / // /全角空格为12288,半角空格为32 /...原创 2022-04-07 10:44:08 · 1182 阅读 · 0 评论 -
C#重写Label类实现绘制箭头,矩形,圆形,菱形,三角形
在winform中,自己写了个继承自label的类,实现了一些简单图形的绘制,省的用这些小图标的时候还要用ps做图片再贴进去。新建一个winforms程序,添加一个CusLabel.cs类,代码如下:using System.Collections.Generic;using System.Drawing;using System.Drawing.Drawing2D;using System.Windows.Forms;namespace TestCusLabel{ p...原创 2022-02-08 17:03:59 · 4360 阅读 · 0 评论 -
C#中异步调用async、await的使用小例子
C#5.0引入了async和await关键字,这可以让我们用很少的代码实现异步编程,假设再同步编程中,点击按钮后要运行耗时5s的运算,这时候界面就会卡死,等着5s的运算结束后用户才能继续操作界面,而用异步编程的话,点完按钮后,着5s的运算会在另一个线程中执行,同时用户可以立即操作界面。废话不多说,上代码:硬件:ThinkPad T570系统:Win10开发环境:VS2019新建一个winform程序,Form1.cs中代码如下: private void button原创 2021-11-19 11:26:26 · 1774 阅读 · 0 评论 -
C#扩展方法例子
C#扩展方法原创 2021-11-19 09:36:57 · 398 阅读 · 0 评论 -
C# Console.WriteLine()不在输出窗口显示内容
以前调试代码的时候,用Console.Writeline(“xxxxx”)可以直接在VS的“输出”窗口显示要打印的东西,今天用VS2019跑代码的时候突然发现没有输出内容了,搞得我一脸懵逼。查了相关资料之后,发现得改成Trace.WriteLine("xxxx")...原创 2021-11-18 15:50:32 · 16360 阅读 · 7 评论 -
C#全角和半角转换
今天用C#开发程序里面的datagridview显示用户输入的文字时,发现同样是英文字符A,显示出来却有区别:AAAA一开始以为是输入字体不一样,搞了半天才发现是全角半角的问题,和输入法没关系。而客户觉得显示格式不统一,不好看,要求改,于是找到下面这篇文章,在这里记录一下文章转自:https://www.cnblogs.com/shanyou/archive/2009/07/13/1522367.html在计算机屏幕上,一个汉字要占两个英文字符的位置,人们把一个英文字符所占的位置称为"半角",相对地转载 2021-05-10 11:50:13 · 1990 阅读 · 0 评论 -
c#将繁体字符串改成简体字符串
在编写考试软件的时候,遇到一个问题,用户输入答案的时候,可能会输入繁体字,理论上来说,只要繁体字和简体字的意思一样,就应该判定为正确,但我们不能简单的使用string1==string2来判定,因为在string中,繁体和简体字是不一样的!所以我们要将繁体转换为简体之后再用等号来判定。代码如下:string str = "好好學習天天向上";string strSimple="";for (int i = 0; i < str.Length; i++)//遍历每个字符{ if ((原创 2020-08-05 15:30:39 · 688 阅读 · 0 评论 -
C#测量字符串在控件中显示的时候,实际显示时候的长宽
当我们要在代码中动态地根据button中显示的文字多少来控制button的宽度的时候,就需要测量字符串的在界面上的实际长度,主要通过Graphics.MeasureString来获取代码如下:public Form1(){ InitializeComponent(); string str = "测量一下我这个字符串有多长"; label1.Text = str; button1.Text = str; Graphics graph = this.Create原创 2020-07-25 11:14:31 · 969 阅读 · 0 评论 -
c#配合sqlserver2014实现调用有输入参数,有返回输出的存储过程
数据库部分:定义一个表Cfg_Department,里面有一列ID,作为主键,并且是标识。还有一列Department是我们的部门数据如下图:然后写一个存储过程,并执行以下,如下:USE [我的数据库名]GOif exists (select * from sysobjects where id = object_id(N'PROC_OperateDepartment') and type in (N'P', N'PC'))drop procedure PROC_OperateDepa原创 2020-06-06 16:05:21 · 315 阅读 · 0 评论 -
C#连接sqlserver数据库主要代码
```csharpusing System;using System.Collections.Generic;using System.Data;using System.Data.SqlClient;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;namespace LabelFit{ public class SqlControl { .原创 2020-06-06 14:57:08 · 1218 阅读 · 0 评论 -
C#中List.Sort排序的用法 小例子
代码如下:定义一个类用来表示学生信息:public class Students{ public int StudentID; public string StudentName; public DateTime EnterTime;}初始化list:List<Students> lstStudents = new List<Students>(); lstStudents.Add(new Students { Stude原创 2020-05-30 23:31:19 · 412 阅读 · 0 评论 -
C#判断文件是否正在使用
private bool IsFileInUse(string strFileName) { if (!File.Exists(strFileName)) return false; bool bRet = true; FileStream fs = null; try { fs = new FileStre.原创 2020-05-29 11:05:25 · 753 阅读 · 0 评论 -
C#使用list时,提示无法修改List<T>.this[int]的返回值,因为它不是变量
namespace WindowsFormsApplication1{ public class Pt3DClass { public int x; public int y; public int z; public Pt3DClass(int ix = 0, int iy = 0, int iz = 0) ...原创 2020-04-24 19:17:30 · 3226 阅读 · 0 评论 -
Qt生成带界面的dll给c#调用的例程
QtCreator版本:Qt Creator 4.0.3Qt版本:Qt 5.6.1 (MSVC 2013,32 bit)C#程序开发环境:VS2015电脑:win10在我的例子中一共有2个工程:一个是qt的工程:qtdll.pro,用来生成dll,该工程放在F:\QTCode\TestCode\TestQtDll4CSharp\myQtMainWindowDll文件夹下;一个是c#的...原创 2020-04-15 12:00:22 · 6168 阅读 · 1 评论 -
WPF中Image控件没有内容时不会触发鼠标事件的问题
我在用wpf制作图片缩放功能的时候,在一个Grid中放了一个Image,然后重写了Image的相关的MouseLeftButtonDown,MouseLeftButtonUp,MouseMove事件,xaml中的代码如下:<Grid Name="ImgGrid" Width="600" ClipToBounds="True"> <Image x:Nam...原创 2020-03-30 16:37:11 · 1013 阅读 · 1 评论 -
WPF编写的txt阅读器(自适应各种编码,解决显示大数据量txt卡顿的问题)
运行效果如下:右击标题栏可选择下一页,上一页,打开文件,关闭程序注意:1.因为用textbox一次性显示1M以上的数据会特别慢,所以我在读取完txt文件之后按照每10240Byte字节为一页,每次只让textbox显示一页,这样就可以在打开大数据量txt的时候也能比较快速的显示。2.即使都是txt文件,其编码方式也会不同,所以可能会导致显示中文为乱码的情况,这就需要在读取文件之前判断文件...原创 2020-03-29 15:20:32 · 1696 阅读 · 0 评论 -
wfp实现图片移动和缩放(Image以鼠标位置为中心缩放)
xaml中的核心代码:<Grid Name="ImgGrid" Width="600" ClipToBounds="True"> <Image x:Name="ImgCtrl" Source="desktop.jpg" MouseLeftButtonDown="ImgCtrlMouseLeftButtonDown" MouseRightButtonUp="ImgCt...原创 2020-03-25 11:11:27 · 599 阅读 · 0 评论 -
c#二维数组的数组 拷贝方式
这边写个小例子,记录一下今天工作遇到的小难题,关于多维数组的数组的数据拷贝定义数组中的单个元素的结构体public struct MyPoint{ public double x; public double y; public double z;}初始化源数组Points 并赋值:MyPoint pt;pt.x = 1;pt.y = 2;pt.z = ...原创 2020-03-09 21:44:02 · 3302 阅读 · 0 评论 -
C#序列化与反序列化小例子(测试序列化List变量)
以前写C++的时候,如果要将参数保存到xml文件的话,需要写很多代码,而且解析xml也是很麻烦,需要为每一种子节点写一段解析+保存的代码。现在用c#之后了解到用序列化和反序列化就很方便,为一个类添加[Serializable]特性之后,就可以直接将该类中的各个类变量通过序列化的方式保存到xml文件。话不多说,直接上代码:需要序列化的类:[Serializable] public c...原创 2020-02-15 15:45:22 · 2054 阅读 · 0 评论 -
用C#开发自定义控件一:创建自定义控件及类库并使用
CSharp开发自定义控件类库并测试的简单例子最近想研究一下怎么编写CSharp的自定义控件,在此记录一下学习过程:首先讲一下我的解决方案工程的组成:首先打开VS(我的是VS2015)新建一个Windows窗体应用程序,命名为TestCustomCtrl,这是用来测试我们的自定义控件用的。然后右击“解决方案TestCustomCtrl”——添加——新建项目——类库,命名为CustomCt...原创 2020-02-07 11:14:44 · 7589 阅读 · 1 评论 -
WPF编写的界面获取鼠标位置
Point moustPoint = Mouse.GetPosition(this);//获取到的是鼠标相对于当前界面的位置 moustPoint = this.PointToScreen(moustPoint);//将该位置换算成相对于显示器的位置...原创 2020-02-04 12:31:42 · 408 阅读 · 0 评论 -
重写ColorDialog类从而实现改变ColorDialog显示的位置
在C#程序中如果直接用ColorDialog来实现颜色挑选功能的话,会有个问题,就是ColorDialog显示的位置永远都是屏幕居中的位置,并且这个类没有提供任何函数来改变其显示位置,这是个大坑。在网上找了半天,终于找到了一个大神重写了ColorDialog类,从而在初始化该类的时候可以设置其显示位置,具体代码如下:using System;using System.Drawing;us...转载 2020-02-04 12:28:58 · 892 阅读 · 1 评论 -
wpf通过代码动态生成Label并通过ColorDialog修改颜色
在上一篇文章中,我用的调色板是popupcoloredit,要用这东西的前提是安装devexpress,这东西是要收费的,一开始我没注意到这点,我之前在VS中写WPF程序的时候,在工具箱里面搜索color直接就跳出来了popupcoloredit,所以直接用了,作为一个程序员,我们当然是能不用收费的东西就不用啦,所以我现在把代码改了一下,调色板直接用的C#里面的ColorDialog。效果如下...原创 2020-02-03 20:59:21 · 2496 阅读 · 0 评论 -
wpf通过代码动态生成Label并通过popupcoloredit修改颜色
我的一个WPF项目上有个功能:需要用到动态生成Label并为其添加事件响应函数,同时需要用到PopupColorEdit修改Label的颜色。研究了一天,在此记录一下:主界面的MainWindow.xaml代码如下:<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" ...原创 2020-02-02 21:32:25 · 797 阅读 · 0 评论 -
c#程序提示“参数计数不匹配”的问题记录(BeginInvoke和Invoke方法使用小例子)
在我的问题代码中,这个异常是由于BeginInvoke()里面的参数填写不对导致的。首先描述一下我的代码功能(当然我现在是特地为了验证这个bug而写的小例子,所以大家放心,代码量很小):点击第“开始显示”按钮之后,就不停在listBox1中插入i = x并刷新界面显示,x一直从0到999,大概耗时4s左右。主界面不停刷新listbox1的同时,我的子线程中需要进行一些耗时的操作,然后在主界...原创 2020-01-31 22:35:46 · 6215 阅读 · 0 评论 -
c#用WPF实现输入时显示智能提示框
功能:用户在textbox中输入字符串;软件自动判断输入的字符串与数据源中的字符串列表是否有相匹配的,如果有则将相匹配的字符串显示在提示界面中;提示界面的位置永远在光标的后方;工程为WPF工程,主界面中放了一个TextBox,提示界面是一个WPF界面,里面放了一个ListBox。主界面的主要代码如下: public partial class MainWindow : Windo...原创 2020-01-13 08:52:52 · 2844 阅读 · 0 评论 -
c#获取文件的MD5值
获取一个文件的MD5值的作用是测定该文件是否是原文件,以保证文件不曾被恶意更改。比如我压缩了一个test.zip文件,计算了一个MD5值放到了一个md5.txt文件中。然后把test.zip和md5.txt一起放到了共享文件夹,这时候某个坏人把共享文件夹里面的test.zip解压缩之后放了个木马进去,然后重新压缩成test.zip文件,替换了原来的test.zip(这时候test.zip计算出来...原创 2020-01-06 15:27:12 · 3960 阅读 · 4 评论 -
WPF使用字典资源
右击工程——添加——新建项——选择“资源字典”——命名为Dictionary1,如下图:在字典Dictionary1.xaml文件中添加一个combobox的style,如下<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" x...原创 2019-12-31 09:10:04 · 538 阅读 · 0 评论 -
WPF使用Hyperlink超链接跳转到外部网站
效果如下:xaml文件主要代码如下: <TextBlock>for more information,please click <Hyperlink NavigateUri="http://www.baidu.com" Click="lnk_Click">baidu</Hyperlink> </T...原创 2019-12-30 14:34:12 · 1781 阅读 · 1 评论 -
WPF中的动态资源和静态资源使用,以图片资源为例
首先来看一下效果,label1的背景是以静态方式绑定的图片,label2的背景是以动态方式绑定的同一张图片。点击按钮“更换背景”之后,label2的背景就变成蓝色了,如下图:MainWindow.xaml中代码如下:<Window x:Class="WpfApplication3.MainWindow" xmlns="http://schemas.microsoft....原创 2019-12-23 17:25:35 · 1650 阅读 · 1 评论 -
WPF中加载并使用图像资源
以我上篇文章中的工程为基础,一开始如下图:首先右击“WpfApplication”——添加——新建文件夹,取名Image然后右击“Image”文件夹——添加——现有项然后随便找个图片,如下图:然后更改一下MainWindow.xaml中的代码:<Window x:Class="WpfApplication3.MainWindow" xmlns="http://s...原创 2019-12-23 16:01:40 · 2829 阅读 · 0 评论 -
WPF实现一个combobox的style
一个Combobox其实是由如下部分组成的,每个单独的部分都可以设置边框,背景,文字颜色,鼠标滑过的效果等:效果如下:xaml代码如下:其中<Window.Resources>与</Window.Resources>之间的就combobox的Style,编写了style之后,可以把界面上的任何一个combobox设置成这个样式,使用样式的方式见下面代码中 与...原创 2019-12-19 08:53:07 · 3446 阅读 · 1 评论 -
WPF中的Style(风格,样式)
转自:https://www.cnblogs.com/Jacklovely/p/5669387.html在WPF中我们可以使用Style来设置控件的某些属性值,并使该设置影响到指定范围内的所有该类控件或影响指定的某一控件,比如说我们想将窗口中的所有按钮都保持某一种风格,那么我们可以设置一个Style,而不必分别设置每个按钮的风格。Style是作为一种资源被保存下来的. 看下面的例子: <...转载 2019-12-14 18:53:46 · 431 阅读 · 0 评论