
C#
naruto2017
ABCDEFG
展开
-
Winform与Windows服务之间的数据交互
在Windows服务和WinForm应用程序之间交换数据,有多种可能的解决方案,包括使用文件、数据库、共享内存,或者使用Windows的进程间通信(IPC)技术。一种常见的IPC技术是使用命名管道(Named Pipe),另一种是使用Windows Communication Foundation (WCF)。你可以创建一个共享的文件或数据库,这两个应用程序都可以读写。然而,这种方法可能导致同步和锁定问题,因此需要仔细处理。使用内存映射文件或共享内存是一种更快的解决方案,但也更难实现。原创 2023-05-18 16:44:03 · 1445 阅读 · 0 评论 -
Winform拖动控件的简单方法
1、在MouseDown事件中记录鼠标按下的Point,并置位按下的flag。2、在MouseMove事件中,将当前Point减去步骤1的Point。3、刷新(this.Validate())原创 2023-05-15 16:13:13 · 439 阅读 · 0 评论 -
(Xamarin)Xaml以控件作为参数传递
【代码】(Xamarin)Xaml以控件作为参数传递。原创 2023-01-13 11:42:48 · 287 阅读 · 0 评论 -
通过URL协议调起Winform应用程序并传参
新建一个Windows Forms项目,在默认的Form1里添加一个Label控件(这里是为了显示传递过来的参数用的,你也可以不这么做)。为了让我们的程序支持命令行参数(winform程序默认没有命令行参数),我们再到Programs.cs里对Main()函数进行改造。将项目编译。原创 2022-11-21 09:45:38 · 721 阅读 · 0 评论 -
C# vs2017的bug code generation for property Controls failed......
在一个64位系统安装32位的vs2017,创建一个Winform项目,包含一个继承自Button的自定义控件ButtonEx,项目生成目标平台设置为AnyCPU。查看Form.Designer.cs的源文件,发现自定义控件只剩下声明部分,定义部分被。在上一步中,若先将项目生成目标平台改为x64,然后再接着执行其他动作,则一切正常。下一步,修改项目属性的AssemblyName,然后重新生成项目。也可以正常运行,但若此时修改界面属性如窗口标题,则无法保存项目。下一步,生成软件,可以正常运行。原创 2022-11-16 14:22:00 · 342 阅读 · 0 评论 -
C# TabControl手动触发DrawItem
当将tabControl的ItemSize设为(0,1)以便隐藏标签title的时候,方法一的事件不会被触发,会导致背景颜色无法重绘,这时候可以使用以下代码手动执行重绘。网上有很多文章介绍,将tabControl的DrawMode属性设为OwnerDrawFixed,然后在其DrawItem事件处理程序中重绘背景颜色。原创 2022-11-16 11:09:59 · 859 阅读 · 0 评论 -
wpf 如何继承Page(坑)
内在原因没有深究,不清楚是不是wpf自带的问题,还是我的vs2017设置不对,如果有更好的解决方法请留言告知。后来将xaml改成先继承Page,然后编译,编译成功后再改成继承BasePage,再编译就通过了。也就是说,得先让BasePage编译成功,然后再继承它,才能成功继承。然后编译,不通过,xaml带波浪线,显示。原创 2022-10-26 15:36:33 · 728 阅读 · 0 评论 -
Graphics.Transform结合Matrix绘制仿射变换的动态图形
【代码】Graphics.Transform结合Matrix绘制仿射变换的动态图形。原创 2022-09-21 15:52:11 · 235 阅读 · 0 评论 -
Expression与Func的区别(Expression与反射的结合使用,生成自定义报表)
【代码】Expression与Func的区别(Expression与反射的结合使用)原创 2022-09-16 11:55:13 · 328 阅读 · 0 评论 -
Halcon踩坑
解决方法:提示加载halcondl.dll失败,而halcondl.dll依赖于libiomp5md.dll,所以将libiomp5md.dll和halcondl.dll放在一起就行了。解决方法:将hcanvas.dll放入程序目录中。原创 2022-08-28 20:38:15 · 4849 阅读 · 0 评论 -
C#中的yield
优快云 sb产品转载 2022-07-20 10:24:34 · 4817 阅读 · 0 评论 -
NewtonJSon反序列化接口属性,及自定义类型转换
来源:https://www.c-sharpcorner.com/UploadFile/20c06b/deserializing-interface-properties-with-json-net/转载 2021-09-07 13:37:52 · 1177 阅读 · 0 评论 -
KryptonNumericUpDown的tooltip不起作用
需要使用kryptonNumericUpDown1.NumericUpDown来settooltip才有效果tooltip1.SetTooltip(kryptonNumericUpDown1, "hello");//无效tooltip1.SetTooltip(kryptonNumericUpDown1.NumericUpDown, "hello");//有效原创 2021-06-17 16:54:59 · 188 阅读 · 0 评论 -
xamarin自定义控件在不同系统(Android、iOS)下的呈现样式
MyProgressBarRenderer.cs(放在App23.Android项目下)using System;using System.Collections.Generic;using System.Linq;using System.Text;using Android.App;using Android.Content;using Android.Graphics;using Android.OS;using Android.Runtime;using Android.V原创 2021-01-09 12:20:54 · 307 阅读 · 0 评论 -
XAMARIN报ADB0020:THE PACKAGE DOES NOT SUPPORT THE CPU ARCHITECTURE OF THIS DEVICE错误解决办法
来源:https://www.xnadevelop.com/android/xamarin-adb0020-the-package-does-not-support-the-cpu-architecture-of-this-device/原创 2020-12-21 11:54:10 · 582 阅读 · 0 评论 -
使用entity framework6 连接 SQLite 数据库
步骤:1、使用GUI工具SQLite Expert Personal设计好数据库,保存为数据库文件xxx.db2、在项目中使用nuget安装System.Data.SQLite包3、新建SQLiteConfiguration类继承【DbConfiguration】4、新建数据上下文类继承【DbContext】,在构造函数中new连接字符串并传给base5、以类似code first方式开发实体类并使用。(由于数据库已经存在,所以实体类需要根据数据库结构来写)需要注意的是,实体类...原创 2020-11-13 17:24:26 · 601 阅读 · 0 评论 -
aspnetcore identity 修改注册页面(MVC项目)
aspnetcore的identity的注册登录模块是外部集成的,刚建立的项目里面未包含可修改的源码。初始注册页面如下:若要修改页面布局,需要使用脚手架,步骤如下:1、运行新建的aspnetcore项目,注册一个新账号。(若跳过密码大小写验证,可在StartUp.cs的ConfigureServices方法中添加如下options)services.AddDefaultIdentity<IdentityUser>(options=> { ...原创 2020-11-06 16:12:43 · 871 阅读 · 1 评论 -
通过SharpGL库实现C#中使用OpenGL
SharpGL是使用C#语言对OpenGL的封装,在.net平台使用非常容易地址:https://github.com/dwmkerr/sharpgl原创 2020-09-18 10:11:50 · 593 阅读 · 0 评论 -
C#在主应用程序中修改类库(自定义控件)的Properties.Settings(settings.settings)
项目结构如下图:自定义控件项目UserControls中有自己的Settings.settings文件,主程序项目WindowsFormsApp21也有自己的Settings.settings文件,主程序中使用了MyButton自定义控件,需求是希望能在主程序中修改某个变量后的值,能统一应用到MyButton的所有实例中。将这个变量放到UserControls中的Settings.settings中是比较合理方便的,这样只要主程序修改该变量的值后保存到自定义控件的Setti.原创 2020-09-01 15:32:13 · 961 阅读 · 0 评论 -
不能在多处添加或插入项“xxx”。必须首先将其从当前位置移除或将其克隆。
代码大概是这样的://窗口启动时,当前窗口是主窗口中弹出的子窗口TreeNode[] tns=new TreeNode[] { new TreeNode(), new TreeNode() };treeView1.Nodes.Clear();treeView1.Nodes.AddRange(tns);//第一次弹出窗口正常,关闭窗口后再次弹出则发生异常经过测试,发现tns和treeView1之间是互相关联的,所以除了执行treeView1.Nodes.Clear();关闭窗原创 2020-07-31 09:23:54 · 3035 阅读 · 0 评论 -
窗口初始化Minimized时,Winform界面重叠
Winform窗口初始化Minimized时,TabControl的两个Tab切换时会发生重叠。老页面如下:打开新页面,会重叠在老页面上。两个页面位于同一个TabControl下,Dock都为Bottom,解决方法:设置TabControl的两个属性如下:AutoSize = TrueAutoSizeMode = GrowAndShrink即可解决上述问题。...原创 2020-07-27 14:15:03 · 465 阅读 · 0 评论 -
C#制作启动画面,主窗体在启动画面之前会闪现一次的原因
主窗体为Form1,启动画面窗体为FormSplash。在Form1的Load事件的开始,将隐藏Form1,显示FormSplash,Load事件结束时显示Form1,关闭FormSplash:private void Form1_Load(object sender, EventArgs e){ this.Hide(); FormSplash splash = new FormSplash(); splash.Show(); //......Form1原创 2020-07-23 16:48:34 · 312 阅读 · 0 评论 -
DllImport中的EntryPoint
C#引用C++写的dll文件时,是否需要EntryPoint参数,要看C++声明方式是一下哪一种:一、若为C-Style方式的声明,则C#引用时不需要EntryPoint参数://cpp头文件声明,C-style方式声明,C#引用时不需要EntryPoint参数extern "C" { void API_EXPORT _cdecl printC(char* msg); int API_EXPORT _stdcall addC(int a, int b);}***********...原创 2020-05-25 14:16:19 · 2876 阅读 · 0 评论 -
C# TabControl 隐藏标签头(TabControl Hide Head)
来源:https://www.cnblogs.com/sdner/p/8058904.html1、设置ItemSize.Width为0,Height为12、设置SizeMode为Fixed3、设置Appearance为FlatButtons转载 2020-04-30 13:43:32 · 2683 阅读 · 0 评论 -
EF与INotifyPropertyChanged的关系
在Winform项目中使用EF,并实现双向绑定时,发现一个有趣的现象:项目中使用了Fody.PropertyChanged,理论上需要model类继承INotifyPropertyChanged接口,才能实现双向绑定。当项目中未使用EF时,确实如此。但是,当项目中引入EF后,实体类的属性与控件绑定,实体类不需要实现INotifyPropertyChanged接口,也能双向绑定。...原创 2020-03-11 09:36:13 · 428 阅读 · 0 评论 -
C# datagridview无法绑定list
需要绑定的数据类型的属性,必须加上get;set;,否则无法绑定窗口加载时绑定数据:private void FormIO_Load(object sender, EventArgs e) { List<Test> lists = new List<Test>() { ...原创 2020-03-07 14:29:10 · 470 阅读 · 0 评论 -
C# ushort(UInt16)转为int
C#中无法强制将ushort转为UInt16,例如下面会报错:UInt16 x = 1;UInt16 y = 2;UInt16 z = x + y;//报错正确的转换方法如下:UInt16 x = 1;UInt16 y = 2;UInt16 z = Convert.ToUInt16(x + y);...原创 2020-03-03 08:59:57 · 5846 阅读 · 0 评论 -
SerialPort.StopBits无法赋值为None
StopBits枚举有四个值:None、One、Two、OnePointFive当给串口的StopBits赋值为None时,会出现异常。所以只能赋后面三个值相关讨论:https://bbs.youkuaiyun.com/topics/200015228...原创 2020-02-28 15:44:27 · 1921 阅读 · 0 评论 -
C# Settings.Settings文件保存在哪里
存放在C:\Users\[你的用户名]\AppData\Local\[你的程序名] 文件夹中例如,我的用户名为Admin,程序名为App1则存放在C:\Users\Admin\AppData\Local\App1 下...原创 2020-02-28 15:23:00 · 4473 阅读 · 1 评论 -
匹配ip的正则表达式
^((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))))$来源:https://www.cnblogs.com/jing-tian/p/11114067.html转载 2020-02-28 14:30:02 · 360 阅读 · 1 评论 -
EF ModelFirst中设置属性的小数位数
原创 2020-02-26 15:06:24 · 850 阅读 · 0 评论 -
entity framework异常: Invalid object name 'dbo.xxxxxx'.
每当使用ef的dbContext.SaveChanges()保存数据时,都会出现以下异常:SqlException: Invalid object name 'dbo.xxxxxx'.找遍全网也找不到解决方案。最后发现,是数据库连接错了......orzAppConfig中使用的连接字符串为:attachdbfilename=|DataDirectory|\xxxxxx.m...原创 2020-02-26 11:47:00 · 4374 阅读 · 0 评论 -
关于C#的decimal、float、double的精度问题(坑)
float类型,没问题:float x = 0.7f;Console.WriteLine("x=" + x.ToString());//x = 0.7int a = (int)x;Console.WriteLine("a=" + a.ToString());//a = 0float x10 = x * 10;Console.WriteLine("x10=" + x10.ToStr...原创 2020-02-25 15:20:58 · 2534 阅读 · 0 评论 -
C# 控件的visible属性和databinding的关系
一个自定义控件内部有一个属性P1,有一个numeric控件。numeric控件的visible属性设为false,minimum最小值为30(非默认值0),value属性在自定义控件的load事件中通过databinding绑定到P1。numeric.DataBindings.Add(new Binding("Value",this,"P1"));测试1:外部调用这个自定义控件...原创 2020-02-21 13:53:25 · 787 阅读 · 0 评论 -
EF model first设置属性为NotMapped
model first中不提供设置属性为NotMapped(不保存到数据库)的功能,设计器中添加的所有属性都会保存到数据库中。model first模式下,若要将某个属性设置为不保存到数据库,可以使用partial类,在该属性上方加上NotMapped特性。[NotMapped]public int Age{ get { return DateT...原创 2020-02-14 14:03:14 · 361 阅读 · 0 评论 -
将label改为KryptonLabel后出现异常
将label改为KryptonLabel后出现异常:控件不支持透明的背景色解决方法:将label的BackColor= System.Drawing.Color.Transparent; 注释掉...原创 2020-02-05 01:45:45 · 253 阅读 · 0 评论 -
通过代码将groupbox改为KryptonGroupbox后出现异常
问题:将groupbox控件类型通过代码改为KryptonGroupbox后,切换回设计器时出现异常:ReadOnly controls collection:在 ComponentFactory.Krypton.Toolkit.KryptonReadOnlyControls.Add(Control value)解决方法:将this.groupBox1....原创 2020-02-05 01:33:31 · 392 阅读 · 0 评论 -
vs2017 正则表达式删除C#中以///开头的summary注释
使用替换方式,将以下正则表达式替换为空:[\t]*///[^\n]*\n即可将全部以///开头的summary注释删除原创 2020-01-15 14:22:48 · 726 阅读 · 0 评论 -
C# 属性cursor的代码生成失败。错误是无法将属性转换为InstanceDescriptor
使用VS2017 + KryptonUI会偶尔出现点击运行或生成按钮报错,但并未标出错误位置。此时关闭VS2017,会提示是否需要保存,若选择【否】不保存,则再次打开项目时,许多控件的内容和属性会丢失。若选择【是】保存,则关闭后再次打开就好了。不知此问题是与Krypton有关,还是与VS2017有关。...原创 2020-01-13 18:01:42 · 1805 阅读 · 0 评论 -
Winform中使用Fody.PropertyChanged不起作用
在Winform工程中通过nuget安装Fody.PropertyChanged,安装完成后,会自动引入文件FodyWeavers.xml如果没有引入,则手动新建一个,内容如下:<?xml version="1.0" encoding="utf-8"?><Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-insta...原创 2020-01-11 14:18:40 · 2283 阅读 · 0 评论