c#
楚楚3107
一点一滴的积累
展开
-
c# 获取时间方法
通过调用类中的各种方法我们可以获取不同的时间:如:日期(2008-09-04)、时间(12:12:12)、日期+时间(2008-09-04 12:11:10)等。原文链接:https://blog.csdn.net/luohaitao/article/details/127326497。获取年份 // 2008。转载 2022-12-23 16:02:50 · 1960 阅读 · 0 评论 -
WPF 常用的方法总结。
C# WPF常用方法总结原创 2022-08-22 09:56:40 · 727 阅读 · 0 评论 -
关于WPF template使用FindName查找控件方法问题。
原因是控件初始化时还未生成,如果想占用这种方法设置ControlTtemplate中的属性。要把它放到Load方法中。可是如果这个方法在UserControl中使用,是找不到模板中的控件的。函数中已找到模板中的Button,这样就可以后台修改属性了。这个方法在Window内使用是没有问题的。...原创 2022-08-22 08:30:08 · 1865 阅读 · 0 评论 -
WPF TabControl标题横向显示
运行效果:WPF实现纵向显示TabControl标题栏通过设置TabStripPlacement属性,标题字体纵向显示则可通过改变TabItem样式,在其中加入TextBlock控件,使用TextWrapping="Wrap"的特性来实现,具体效果如图: 主窗体XAML代码:、原博客地址:WPF实现纵向显示TabControl标题及标题字体样式_RunnerDNA的博客-CSDN博客https://blog.csdn.net/dnazhd/article/details/89841942.......转载 2022-06-13 10:03:49 · 765 阅读 · 0 评论 -
c# 使用FileStream 打开图片并显示
FileStream 打开图片的好处是读取图片到内存,保存为byte[],然后转为bitmap显示。这样被打开的图片资源不被占用。可以进行图片删除操作。using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.原创 2022-05-06 14:23:56 · 4927 阅读 · 4 评论 -
设计模式-代理模式(Proxy)
代理模式(Proxy),为其他对象提供一种代理以控制这个对象的访问。结构图如下:Subject 类,定义了RealSubject 和Proxy 的共用接口,这样就在任何使用RealSubject的地方都可以Proxy。abstract class Subject{ public abstract void Request();}Proxy类,...原创 2022-04-25 10:20:13 · 254 阅读 · 0 评论 -
c# DrawImage使用时碰到的一些问题。
我在使用c# Graphics类的DrawImage做图像拼接的时候。发现这个方法如果使用的重载方法不对的话,图像拼接会出现问题。Bitmap bitmapJoint = new Bitmap(width, height);Graphics graph = Graphics.FromImage(bitmapJoint);graph.DrawImage(bitmapJoint, width, height);graph.Clear(System.Drawing.Color.Gray);int c原创 2022-04-14 09:51:44 · 1729 阅读 · 0 评论 -
c# 使用栈实现计算器的四则运算,允许操作符(+-*/)
输入正确的表达式可以计算出结果。要求:(1).控制台输入的()必须是英文的。(2).忽略小数计算,只计算整形,相除取整。比如:输入3+2*2 输出7 输入3/2 输出1 输入3+5/2 输出5 。暂未实现界面化的计算器。界面效果:代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;usi原创 2022-03-23 11:17:58 · 1504 阅读 · 0 评论 -
托管调试助手 **** 调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。” 解决办法
托管调试助手 **** 调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。” 解决办法。原创 2022-01-14 15:03:29 · 458 阅读 · 0 评论 -
c# byte[] 与string 转换的几种常用方法
1.byte[] -----> string(普通字节):string str = System.Text.Encoding.Default.GetString ( byteArray );2.byte[] -----> string(byte为宽字节):string str = System.Text.Encoding.Unicode.GetString(myarray);3.string -------> byte[]:byte[] byteArray = S原创 2022-01-13 15:19:25 · 16355 阅读 · 0 评论 -
c++ 与c# 类型对照
//c++:HANDLE(void*)----c#:System.IntPtr//c++:Byte(unsignedchar)----c#:System.Byte//c++:SHORT(short)----c#:System.Int16//c++:WORD(unsignedshort)---c#:System.UInt16//c++:INT(int)...转载 2022-01-13 10:22:01 · 1536 阅读 · 1 评论 -
VS2010 英文版加载Log4net时出现 The type or namespace name ‘log4net‘ could not be found 解决方法
我的需求是这样的,想要把Log4net 编写成一个动态库供其他项目使用。但是在编译时报这个错误。后经查找,需要将这个库的Target framework 由原来的.net framework 4 Client Profile修改为.net Framework 4。告警立马解除。特记录一下。...原创 2022-01-06 10:58:16 · 458 阅读 · 0 评论 -
c# 获取串口USB pid,vid方法。
我之前是有开源项目EZUSB获取电脑的pid,vid。功能很全,很强大,展示效果也很好,但是它有个BUG,就是个别USB的接口识别不到pid,vid。这个就可麻烦了。需要重新找方法。c#的方法很少。需要使用c++编写动态库的形式获取。而c++又不能直接返回字符串。必须要在c# 中开辟一块空间,将控件传递给c++,c++获取到信息后在赋值返回。这就是我用的方法。其中用到几个知识点。1). 如何制作c++动态库。需要制作不换名的动态库,不然更换电脑是不能调用的。2). c++如何返回字符串给c#使用。原创 2022-01-04 16:09:28 · 7148 阅读 · 1 评论 -
c# System.FieldAccessException异常问题
官方给的解释是“无效地试图访问类中的私有或受保护字段时,将引发FieldAccessException异常。” 就是说不要跨项目访问类中的受保护字段的意思。原创 2021-12-29 10:53:46 · 461 阅读 · 0 评论 -
c# ocx控件安装后不显示问题。
情况是这样的,同一个安装包。默认安装后大部分的电脑可以显示。个别电脑不显示控件。做了一下尝试:1.修改IE的安全设置。打开IE浏览器->工具->Internet选项->安全->自定义级别。设置效果如下(按照网上说的设置)并没有起作用。后来设置了安装包的安装选项。将安装时的Just me修改为EveryOne后。再次打开就可以显示OXC控件了。...原创 2021-12-16 13:52:18 · 1867 阅读 · 0 评论 -
试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)
我用VS2019打开其他项目时发现这个错误。VS2019设置CPU为Any Cpu。经查看原来项目是32位的。需要将CPU设置为X86。修改方法如下。在右边的“解决方案资源管理器”里,右键该项目点击属性。在属性窗口里选择“生成”——“目标平台”下拉里选中“X86"即可。见下图:重新编译项目就可以了。...原创 2021-11-06 13:23:02 · 2106 阅读 · 0 评论 -
c# 创建Bitmap引发“参数无效“异常 原因
问题描述,摄像头在拍照。引发创建Bitmap参数异常。如图:查看代码发现参数给的Wdith,Height都是符合范围的。经查询发现时内存泄漏导致创建Bitmap对象失败。内存占用已经达到1.3G左右了。所以内存泄漏问题导致了Bitmap创建异常问题。特记录一下。...原创 2021-10-25 11:06:11 · 5036 阅读 · 3 评论 -
c# 设置本地电脑临时环境变量方法
设置本地临时环境变量的好处是只对当前进程起作用,程序销毁后就不存在了。并不会写到电脑的Path中。设置临时变量需要用到Environment这个类。public static void SetEnvironmentVariable(string variable, string value, EnvironmentVariableTarget target);静态方法直接调用就可以了。System.Environment.SetEnvironmentVariable("Path", str,原创 2021-10-20 16:38:56 · 780 阅读 · 0 评论 -
vs2010 点击时应用程序无法正常启动(0xc000007b).请单击“确定”关闭应用程序解决办法
昨天做项目的时候,在安装一个win32的应用程序后再次启动vs2010时发现报错,就是如下的错误:哎呀,我的天,关键时刻就打不开了。这么怎么办呢。赶紧去搜解决办法。1.使用Directx修复。(修复了180个左右的dll文件,但是没有解决我的问题。。)2.卸载,重新安装vs2010。(依然不起作用。因为根本原因不在程序这里。)3.我继续查找方法。最后确定了问题的所在。我的vs2010缺少了正确版本的dll文件msvcp100.dll,msvcr100.dll。在我的电脑下C:\...原创 2021-10-17 17:22:02 · 5634 阅读 · 2 评论 -
c# 使用File.Create创建文件后,正由另一进程使用,因此该进程无法访问此文件解决办法。
我在创建文件时,使用文件是否存在方法判断。不存在就创建,存在跳过,这样看着没有什么问题。if (!File.Exists(newFile)) { File.Create(newFile);}接下来我就要像该文件序列化存储信息了。程序走到这步时保存,说文件正由另一进程使用,因此该进程无法访问此文件。 XmlSerializer pXmlSerizlizeTemp = new XmlSerializer(typeof(PropertyGridModel)); using原创 2021-09-02 13:58:17 · 5352 阅读 · 0 评论 -
c# WPF InvalidOperationException异常的几种常见原因
什么是InvalidOperationException操作无效异常。当方法调用对对象的当前状态无效时引发的异常。继承ObjectExceptionSystemExceptionInvalidOperationException详细说明如果调用方法失败是由无效参数以外的其他原因导致的,则使用该异常。通常, 当对象的状态不支持方法调用时, 将引发此异常。例如, 以下方法或原因会引发异常nvalidOperationException: IEnumerator.MoveN.原创 2021-08-20 17:01:26 · 6859 阅读 · 1 评论 -
WPF DataGrid 获取选中的当前行某列值
方法一: DataRowView mySelectedElement = (DataRowView)dataGrid1.SelectedItem; string result = mySelectedElement.Row[0]ToString(); 方法二: var a = this.dataGrid1.SelectedItem; var b = a as DataRowView; string result = b.Row[0].ToString(); ...转载 2021-07-26 09:00:35 · 2163 阅读 · 0 评论 -
c# 无法加载DLL“###.dll”,: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)
今天又碰到这种情况。我还特意去了生成目录去看是否缺少该dll。不缺少,但是运行时依然报错。我遇到的这个情况就是该dll引用了其他dll。其他dll缺少造成的该错误。记录一下。原创 2021-06-16 17:40:05 · 4587 阅读 · 0 评论 -
C# try catch异常条件处理情况
编写C#异常处理代码时,应将特殊处理的异常写在前边,普通异常写在后边,不然代码不会被编译,特殊的异常永远不会执行。using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ExcepTion{ class Program { static void Main(string[]原创 2021-05-05 19:28:21 · 163 阅读 · 0 评论 -
C# Bitmap 与 Bytes数组,Bitmap与Image 控件的转换
按照下边转换就可以了。速度比较快。 /// <summary> /// 将BitMap转换成bytes数组 /// </summary> /// <param name="bitmap">要转换的图像</param> /// <returns></returns> private byte[] BitMapToByte(System.Drawing.Bitmap bitmap) { // 1.先将BitMap原创 2021-03-24 15:28:58 · 5444 阅读 · 8 评论 -
c# Bitmap 转bitmapImage高效方法
网上有很多人都记录以下方法进行转换,这个方法存在一个问题,就是低效,我在进行图片拼接时,图片大了之后就会很慢。所以我有找了一个高效的替代方法。 public BitmapImage BitmapToBitmapImage(System.Drawing.Bitmap bitmap) { System.Drawing.Bitmap bitmapSource = new System.Drawing.Bitmap(bitmap.Width, bitmap.Height原创 2021-03-05 16:51:57 · 2716 阅读 · 0 评论 -
WPF Canvas上鼠标事件不响应解决办法。
刚刚写个案例在测试,发现不管是窗口,还是自定义控件,Canvas直接写上鼠标事件不响应,网上找了下,说要设置背景颜色,我看这个说的相对靠谱。记录一下:没有背景颜色设置(显式或通过样式等)的控件将默认为背景颜色为null – 使其不可击中测试。如果将背景设置为“透明”(或任何非null({x:Null})),那么它将能够获取鼠标事件。...原创 2021-01-10 22:07:50 · 1487 阅读 · 0 评论 -
WPF限制TextBox只能输入数字
KeyDown事件private void tbCount_KeyDown(object sender, KeyEventArgs e) { TextBox txt = sender as TextBox; //屏蔽非法按键 if ((e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9) || e.Key == Key.Decimal || e.Key.转载 2021-01-08 13:05:20 · 654 阅读 · 0 评论 -
WPF中获取Canvas中控件的坐标方法
Canvas.GetTop(Button);Canvas.GetLeft(Button);原创 2020-12-11 14:35:23 · 2101 阅读 · 0 评论 -
C# WPF Image控件的使用
在WPF的Image控件中显示静态的图像string path= System.Environment.CurrentDirectory+ "\\logo.png";//获取图片绝对路径BitmapImage image = new BitmapImage(new Uri(path, UriKind.Absolute));//打开图片logo.Source = image;//将控件和图片绑定,logo为Image控件名称...转载 2020-12-09 10:29:14 · 849 阅读 · 0 评论 -
WPF 使用e.GetPosition获取Image控件坐标时,Image.Source是否为null对获取坐标结果的影响
今天做项目时,想要获取Canvas中的一个Image控件的相对坐标。发现获取到鼠标按下的坐标值总是对不上。经过反复的尝试,发现Image控件的Source是否为空会对获取坐标的结果有影响。举个例子吧,在Grid中放置一个Canvas,在后台代码中添加一个image控件。xaml<Window x:Class="Canvas_WPF.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentat原创 2020-11-19 18:38:06 · 2402 阅读 · 0 评论 -
WPF 在Canvas中动态设置控件的坐标
Canvas.SetTop(mylabel1, 100);Canvas.SetLeft(mylabel1, 100);原创 2020-11-18 16:25:56 · 1487 阅读 · 0 评论 -
WPF 后台设置控件的颜色字体
Button TempButton = new Button(); TempButton.Tag = “按钮标记”; TempButton.Height = 30; TempButton.Width = 100; TempButton.Style = this.Fi...转载 2020-11-18 15:59:22 · 2854 阅读 · 0 评论 -
WPF 使用TransformToVisual进行坐标转换
在做关于画图的项目的时候,经常会用到坐标转换。关于静态的坐标转换比较好得到,使用Point p = e.GetPosition(“控件名称”)就可以获取。如果画图过程中所有的控件都是动态生成的,外控件套着很做子空间,子控件也有子控件。有几种方法可以做到,1是可以通过查找父类名称的方法,找到最外层的控件,通过e.GetPosition("")直接获取。也可以使用TransformToVisual方法获取。本文将着重说明下TransformToVisual如果查找相对父控件坐标。设计图:xaml:原创 2020-11-07 15:58:16 · 1468 阅读 · 0 评论 -
WPF 通过设置Canvas.ZIndex属性修改图像的图层
对Canvas.ZIndex,MSDN的解释是:获取或设置Canvas中对象的 z 顺序呈现行为。并附有以下示例代码: <Grid x:Name="LayoutRoot" Background="White"> <Canvas> <Ellipse Canvas.ZIndex="3" Canvas.Left="5" Canvas.Top="5" Height="200" Width="200" Stroke="Black" S..转载 2020-10-13 22:04:27 · 4346 阅读 · 0 评论 -
c# wpf DataTable System.DBNull的问题
今天在编写代码时,使用DataTable进行数据接收,如果接收到的数据与当前row数据对应就进行赋值,情景如下:foreach (DataRow temp in DataTable.Rows) { if ((double)temp["HiddenMaxValue"] >= 0) // 数据接收到这里出错 { }}报错如下:指定的转换无效,这是什么鬼,难道是列数据为空么,那就先判断一下是否为空吧。...原创 2020-07-30 23:35:38 · 526 阅读 · 0 评论 -
WPF 使用Path绘制几何图形
Path类继承自Shape,可以绘制很多简单的,复合的图形。Path类通过提供的Data属性,Data属性接受一个Geometry对象(我的理解就是Data要装什么集合图形呀),Geometry一共有7个派生类,说明如下:名称 说明 LineGeometry 绘制直线 RectangleGeometry 绘制矩形(包括原型拐角的举行) EllipseGeometr...原创 2020-05-02 22:34:14 · 4594 阅读 · 0 评论 -
WPF画图的 GeometryGroup的FillRule属性
FillRule为填充规则的意思,它有两个属性值,EvenOdd,Nonzero,如下表:FillRule 属性值 使用方法 EvenOdd(默认值) 就算计算某些东西是不是奇数,如果是是奇数则内部,填充;如果是偶数则外部,不填充。 Nonzero 就算计算某些东西是不是0,如果不是0则内部,填充;如果是0则外部,不填充。 ...原创 2020-04-06 21:50:48 · 1984 阅读 · 0 评论 -
Dictionary与KeyValuePair的区别
1.KeyValuePair:比如new一个对象KeyValuePair<int, int> keyValue = new KeyValuePair<int, int>(); 这个对象keyValue只能添加一个key ,一个value。keyValue.Add(1,2);这是没问题的。不过不能再添加对象了。2.Dictionary:可以添加多个key和Value...原创 2020-03-22 22:09:19 · 1138 阅读 · 0 评论 -
c#查找List<Dictionary>中字典的Key
之前找了一些方法,尝试如何找出在List中字典的Key,发现这个方法可以实现,特此留下笔记:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApp1{ class ...原创 2020-03-08 23:09:48 · 3898 阅读 · 0 评论