C#
文章平均质量分 75
wenchm
喜欢读书
展开
-
C#鼠标拖拽无边框浮动窗体的方法:窗体控制
一般情况下,在标题栏中按住鼠标左键不放即可实现拖动操作。当做浮动窗体时,如果包含窗体边框,那么界面给使用者的感觉将很不友好,因此浮动窗体没有边框,但对于这种没有边框的窗体,该如何进行拖放操作呢?原创 2024-04-25 17:20:23 · 819 阅读 · 0 评论 -
C# 通过子窗体刷新父窗体:窗体控制
在一些软件,比如,进销存管理系统中添加销售单信息时,每个销售单都可能对应多种商品,而且在向销售单中添加商品时,一般都是在新弹出的窗体中选择商品,这时就涉及通过子窗体刷新父窗体的问题。原创 2024-04-25 16:34:32 · 1187 阅读 · 0 评论 -
C#窗体中动态按钮的设计方法:创建特殊窗体
在窗体界面中,通常以按钮来代替菜单栏的功能,这种形式虽然给用户一种直观、界面风格各异的感觉,但通常按钮都是以静止的形式显示,当光标移到按钮上时,可以使按钮上的图片和文字说明动态化,使用户快捷地找到所选按钮,这时就需要一个动态按钮的窗体界面。原创 2024-04-24 14:12:57 · 540 阅读 · 0 评论 -
C#设计树形程序界面的方法:创建特殊窗体
以树形来显示程序的菜单,可以更直观、更快捷地对窗体进行操作,而且树型菜单比菜单栏更加美观实用。原创 2024-04-24 09:12:05 · 896 阅读 · 0 评论 -
C#带引导窗体的窗体设计方法:创建特殊窗体
很多时候。我们的窗体设计需要一个引导窗体。当打开一个项目的窗体时,默认的是先打开一个欢迎或介绍项目信息的引导窗体,几秒钟后再打开项目的主窗体。这几秒时间最重要的意义是等待主窗体加载程序完毕。原创 2024-04-23 10:58:59 · 533 阅读 · 0 评论 -
C#使用AnimateWindow()实现动画窗体的方法:创建特殊窗体
目录一.涉及到的知识点(1) AnimateWindow函数(2)操作流程1.首先,定义一个用于封装AnimateWindow函数的类2.在窗体类中使用这个方法3.生成效果二、实例(1)Resources.Designer.cs(2)Form1.Designer.cs(3)Form1.cs(4)生成的动画效果 用API函数AnimateWindow函数来实现窗体的动画效果。在C#中,你可以使用P/Invoke技术调用Windows API中的AnimateWindow函数来实现动画窗体。语法格原创 2024-04-20 19:50:34 · 899 阅读 · 0 评论 -
C#在窗体中设计滚动字幕的方法:创建特殊窗体
普通窗体中的文字位置都是固定的,但在一些窗体中需要让文字动起来,如一些广告性较强的界面中需要做一些滚动的字幕。原创 2024-04-19 23:25:52 · 596 阅读 · 2 评论 -
C#自定义窗体更换皮肤的方法:创建特殊窗体
要在Windows窗体应用程序中更换皮肤,通常需要修改窗体的外观,包括其颜色、字体、鼠标光标和非客户区(如窗口边框、最小化和最大化按钮等)。这可以通过创建一个自定义窗体或使用第三方库来实现。原创 2024-04-19 22:30:26 · 785 阅读 · 0 评论 -
C#创建磁性窗体的方法:创建特殊窗体
无标题窗体的移动主要是通过控件来移动窗体,比如,用Panel控件来进行。经常会遇到一种情况,即当拖动一个窗体(主窗体)时,其他窗体(子窗体)随着该窗体移动,当拖动子窗体时,其他窗体将不跟随移动,这就是磁性窗体。项目使用的图片资源应设计到资源管理器,详见本文作者写的其它文章:C#手动改变自制窗体的大小-CSDN博客。本实例将制作一个磁性窗体,当拖动主窗体移动时,两个子窗体如果相连,则跟随移动。在主窗体移动时,通过改变跟随窗体的Left和Top属性值实现“磁性”。主窗体吸引子窗体再吸引子窗体。原创 2024-04-16 22:21:10 · 1380 阅读 · 0 评论 -
C#创建背景色渐变窗体的方法:创建特殊窗体
在窗体设计时,可以通过设置窗体的BackColor属性来改变窗口的背景颜色,但是该属性改变后整个窗体的客户区都会变成这种颜色,这样显得非常单调。如果窗体的客户区可以像标题栏一样能够体现颜色的渐变效果,那么窗体风格将会另有一番风味。原创 2024-04-15 10:06:48 · 779 阅读 · 0 评论 -
C#创建随机更换背景图片的窗体的方法:创建特殊窗体
很多时候,我们需要每次打开窗体时能够更换一副新的背景图片。原创 2024-04-15 09:39:14 · 1433 阅读 · 0 评论 -
C#创建字符窗体的方法:创建特殊窗体
通过调用带有文字的图片,然后重写窗体的OnPaint方法,并在该方法中对窗体进行重绘,最后使用透明色将窗体设置为透明即可实现字体形状窗体。原创 2024-04-14 20:19:15 · 546 阅读 · 0 评论 -
C#创建圆形窗体的方法:创建特殊窗体
非矩形窗体是一种特殊窗体。创建非矩形窗体时,主要通过重写窗体OnPaint方法,并在其中对窗体进行重绘,然后使用透明色将窗体设置为透明来实现的。原创 2024-04-13 09:02:29 · 687 阅读 · 0 评论 -
C# 图形化的导航界面的设计方法
图形化导航用于代替文字导航,比如对Button控件 进行图形化导航:“图片+文本”。原创 2024-04-13 09:01:26 · 1068 阅读 · 0 评论 -
C#设计一个带导航菜单的主界面的应用案例
在C#中,可以使用Windows Forms或WPF来设计带有导航菜单的主界面。原创 2024-04-12 08:50:43 · 1623 阅读 · 0 评论 -
C#的LINQ to XML 类中使用最多的三个类:XElement、XAttribute 和 XDocument
System.Xml.Linq 命名空间包含 LINQ to XML 的19个类。LINQ to XML 是内存中的 XML 编程接口,使能轻松有效地修改 XML 文档。微软在 LINQ 上投入了很大的精力,使我们在编程时感觉到很舒服。处理XML 时使用最多的三个类:XElementXAttribute和XDocument。1包含 LINQ to XML 扩展方法。2表示 XML 特性。3表示包含 CDATA 的文本节点。4表示 XML 注释。5表示可包含其他节点的节点。6。原创 2023-11-04 21:45:40 · 1242 阅读 · 0 评论 -
C#在.NET Windows窗体应用中使用LINQtoSQL
默认安装的背景下,新建的Windows窗体应用是不支持LINQtoSQL类的。现象是资源管理器里的依赖项中默认的安装不能自动生成支持system.data.linq和system.data.linq.mapping之类的文件。导致DataClasses1.designer.cs文件里一片红色警告。【本文的作者在其写的其他文章里已经有所涉及】原创 2023-11-07 14:09:23 · 630 阅读 · 0 评论 -
C#中.NET 7.0控制台应用使用LINQtoSQL、LINQtoXML
默认安装的.NET 7.0控制台应用是不支持使用LINQtoSQL、LINQtoXML的。默认安装的.NET Framework控制台应用和窗体应用都支持LINQtoSQL、LINQtoXML类的。.NET Framework的Windows窗体应用、控制台应用,默认安装后或添加LINQtoSQL、LINQtoXML类后都能自动生成完整的支持文件,而.NET 7.0控制台应用和窗体应用,默认安装或添加应用后不能自动生成完整的支持文件。原创 2023-11-08 12:31:19 · 1313 阅读 · 0 评论 -
C#中通过LINQtoXML加载、创建、保存、遍历XML和修改XML树
LINQtoXML编程包含:加载xml、创建全新xml、遍历xml和修改xml树的信息。原创 2023-11-08 21:02:49 · 1060 阅读 · 0 评论 -
C#中在.NET 7.0控制台应用使用ADO.NET的方法
region 程序集 ClassLibrary1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null#endregion由此,可以看出在 .NET 7.0框架下通过上述操作,果然间接地通过ADO.NET访问了数据库。原创 2023-11-10 22:52:27 · 849 阅读 · 1 评论 -
C#中.NET Framework 4.8控制台应用通过EF访问已建数据库
我们都知道.NET Framework最后一个更新版本是4.8.1,而曾经支持.NET Framework的EF版本却一直更新到现在仍然在不断创新。当前流行的VS2022仍然支持.NET Framework 4.8,在.NET Framework 4.8下使用EF访问数据库,不经过一番额外的操作,想直接使用VS2022的默认安装,是不可能行得通的。幸好VS2022没有关闭在.NET Framework 4.8下使用EF访问数据库的大门。本文作者经过学习、整理成本文发布出来提供给有需要的人。原创 2023-11-13 10:25:51 · 2031 阅读 · 0 评论 -
C#中.NET 6.0控制台应用通过EF访问已建数据库
VS2022的.NET6.0、.NET7.0框架下默认支持EF7(版本号7.0.13),除非需要没有必要降低版本使用。原创 2023-11-13 13:38:05 · 1050 阅读 · 1 评论 -
C#中.NET Framework4.8 Windows窗体应用通过EF访问数据库并对数据库追加、删除记录
前文作者发布了在.NET Framework4.8 控制台应用中通过EF访问已有数据库,实施上,.NET Framework4.8 Windows窗体应用中通过EF访问已有数据库也是一样的。操作方法基本一样,数据库EF模型和上下文都是自动生成的,在这里不再重复叙述,只把应用部分、窗体设计、生成效果分享出来。原创 2023-11-14 10:53:06 · 1121 阅读 · 0 评论 -
C#中.NET 6.0 Windows窗体应用通过EF访问数据库并对数据库追加、删除记录
前文作者发布了在.NET 6.0 控制台应用中通过EF访问已有数据库,事实上,在.NET 6.0 Windows窗体应用中通过EF访问已有数据库也是一样的。操作方法基本一样,数据库EF模型和上下文都是自动生成的,在这里不再重复叙述,只把应用部分、窗体设计、生成效果分享出来。原创 2023-11-14 13:26:07 · 578 阅读 · 0 评论 -
C#中.NET Framework4.8 控制台应用通过EF访问新建数据库
前文已经说过.NET Framework4.8 控制台应用通过EF访问已经建立的数据库,这里说的已经建立的数据库指的是已经建立的SQLServer那样的数据库或VS 的本地数据库(localdb) \MSSQLLocalDB。这些数据库能够通过SSMS建立连接或在VS上建立本地的数据库连接,是可以操作的、可以看得见的。本文想说的是,.NET Framework4.8 控制台应用通过EF访问新建数据库,这里的数据据库要根据事先编写好的EF模型、经过一番操作,移植(Migrations)出来的。原创 2023-11-14 22:38:53 · 723 阅读 · 0 评论 -
C#中.NET 6.0 控制台应用通过EF访问新建数据库
前文已经说过.NET Framework4.8 控制台应用通过EF访问新建数据库,这里的数据据库要根据事先编写好的EF模型、经过一番操作,移植(Migrations)出来的。这个数据库是看不到这个数据库的连接的。本文再说下.NET 6.0控制台应用通过EF访问新建数据库的操作过程。原创 2023-11-15 12:27:29 · 975 阅读 · 0 评论 -
C#中.NET Framework4.8 Windows窗体应用通过EF访问新建数据库
前文已经说过.NET Framework4.8 控制台应用通过EF访问已经建立的和新建的数据库。本文想说的是,.NET Framework4.8 Windows窗体应用通过EF访问新建数据库,这里的数据据库要根据事先编写好的EF模型、和数据库上下文,经过一番操作,移植(Migrations)出来的。这个数据库在“工具、连接到数据库”是看不到这个数据库的连接的。原创 2023-11-15 14:58:34 · 963 阅读 · 0 评论 -
C#中.NET 7.0 Windows窗体应用通过EF访问新建数据库
前文已经说过.NET Framework4.8 控制台应用通过EF访问已经建立的和新建的数据库。前文已经说过.NET 6.0 控制台应用通过EF访问已经建立的数据库。本文想说的是,.NET 7.0 Windows窗体应用通过EF访问新建数据库,这里的数据据库要根据事先编写好的EF模型、和数据库上下文,经过一番操作,移植(Migrations)出来的。这个数据库在“工具、连接到数据库”是看不到这个数据库的连接的。原创 2023-11-15 16:29:44 · 677 阅读 · 0 评论 -
C#中.NET 7.0 Windows窗体应用通过EF访问已有数据库并实现追加、删除、修改、插入记录
在发布这篇文章之前,先说一下作者为了实现通过EF修改已有数据库记录和在任意空位置插入数据库记录所做过的一些尝试,做这些尝试很累甚至一度失望。因为EF已经更新到7.0(刚刚又更新到了8.0),EF7相对于EF6之前的版本有了一些改变,甚至放弃了一些不安全的对数据库操作的函数,缺少经验的人在知道到的情况下,继续使用那些在EF7以后得版本不再支持的函数,找不到原因的时候是很崩溃的。现在总结一下在写本文时遭遇的EF6函数不再被EF7支持的“花絮”。原创 2023-11-20 15:05:28 · 1505 阅读 · 0 评论 -
C#中抽象类、抽象方法和接口暨内联临时变量的精彩表达
发一份总结,挣点流量。原创 2023-11-21 11:58:21 · 560 阅读 · 0 评论 -
C#中密封类和密封方法
密封类可以用来限制扩展性,如果密封了某个类,则其他类不能从该类继承;如果密封了某个成员,则派生类不能重写该成员的实现。默认情况下,不应密封类型和成员。C#中声明密封类时需要使用sealed关键字,具体语法格式如下:访问修饰符 sealed class 类名:基类或接口//类成员。原创 2023-11-21 15:46:16 · 342 阅读 · 0 评论 -
C#中集合和索引器
继承IEnumerable和IEnumerator接口并定义一个集合来存储商品信息,遍历输出集合中的商品信息。// 集合public class Goods(string code, string name) //定义集合中的元素类,表示商品信息类//编号//名称public class JHClass : IEnumerable, IEnumerator //定义集合类//初始化Goods类型的集合public JHClass(Goods[] gArray) //使用带参构造函数赋值。原创 2023-11-22 11:35:42 · 1312 阅读 · 0 评论 -
C#中委托和匿名方法
为了实现方法的参数化,提出了委托的概念,委托是一种引用方法的类型,即委托是方法的引用,一旦为委托分配了方法,委托将与该方法具有完全相同的行为;另外,.NET中为了简化委托方法的定义,提出了匿名方法的概念。原创 2023-11-22 14:40:14 · 908 阅读 · 0 评论 -
C#中的事件(委托的发布和订阅、事件的发布和订阅、EventHandler类、Windows事件)
C#中的事件是指某个类的对象在运行过程中遇到的一些特定事情,而这些特定的事情有必要通知给这个对象的使用者。当发生与某个对象相关的事件时,类会使用事件将这一对象通知给用户,这种通知即称为“引发事件”。引发事件的对象称为事件的源或发送者。原创 2023-11-23 15:57:10 · 3646 阅读 · 2 评论 -
C#中的迭代器和分部类
迭代器在集合类中经常使用,而分部类则提供了一种将一个类分成多个类的方法,这对于有大量代码的类非常实用。一、迭代器迭代器是可以返回相同类型的值的有序序列的一段代码,可用作方法、运算符或get访问器的代码体。迭代器代码使用yield return语句依次返回每个元素,yield break语句将终止迭代。可以在类中实现多个迭代器,每个迭代器都必须像任何类成员一样有唯一的名称,并且可以在foreach语句中被客户端代码调用。迭代器的返回类型必须为或中的任意一种。原创 2023-11-23 21:57:03 · 1331 阅读 · 0 评论 -
C#中的泛型
interface [接口名] [接口体]声明泛型接口时,与声明一般接口的唯一区别是增加了一个。一般来说,声明泛型接口与声明非泛型接口遵循相同的规则。泛型类型声明所实现的接口必须对所有可能的构造类型都保持唯一。否则就无法确定该为某些构造类型调用哪个方法。在实例化泛型时也可以使用约束对类型参数的类型种类施加限制,约束是使用where上下文关键字指定的。下面列出了6种类型的约束。约束说明T:结构类型参数必须是值类型。可以指定除Nullable以外的任何值类型T:类。原创 2023-11-24 11:47:26 · 1093 阅读 · 0 评论 -
C#中警告CA1050、CA1821、CA1822、CA1859、CA2249及处理
此规则查找对 IndexOf 的调用,其中结果用于检查是否存在 substring,并建议使用 Contains 来提高可读性。将变量“factory”的类型从“_01.IGenericInterface”更改为“_01.Factory”,以提高性能。内联临时变量,按着提示操作,不定义显式的变量。内联临时变量后,警告消失。原创 2023-11-24 20:35:27 · 1213 阅读 · 0 评论 -
C#中的警告CS0120、CS0176、CS0183、CS0618、CS0649、CS8600、CS8601、CS8602、CS8604、CS8625、CS8618、CS0103、CS0234及处理
void Students.SchoolJow(object sender, EventArgs e)”的参数“sender”类型中引用类型的为 Null 性与目标委托“EventHandler”不匹配(可能是由于为 Null 性特性)。若要删除这些警告,需要在取消引用之前添加代码,将该变量的“null 状态”更改为“不为 null”。将 null 文字或可能的 null 值转换为不可为 null 的类型。解除办法:对is操作的变量进行装箱操作,然后is操作装箱后的变量。解引用可能出现空引用。原创 2023-11-24 21:22:22 · 2297 阅读 · 0 评论 -
C#中警告IDE0017、IDE0018、IDE0180、IDE0020、IDE0028、IDE0044、IDE0054、IDE0059、IDE0060、IDE0066、IDE0090及处理
使用 "switch" 表达式。C#编译器对于C/C++风格的switch表达式能编译通过,但会消息提醒。需要修改为C#风格的 "switch" 表达式。'foreach' 语句隐式将 'object' 转换为 'string[]'。添加显式强制转换以使意向更清晰,因为它可能会在运行时失败。不需要对 "StrB" 赋值,表现为下文有赋值的变量声明时不需要初始化;产生原因:源码中没有使用符合赋值运算符。解决办法:按照提示,添加只读修饰符。可以简化集合初始化,按提示操作。可简化 "new" 表达式。原创 2023-11-25 17:34:27 · 740 阅读 · 0 评论 -
C#中警告IDE0290、IDE1006、IDE1100、IDE0251、IDE0300及处理
一、严重性代码说明项目文件行禁止显示状态消息IDE0290使用主构造函数0610活动。原创 2023-11-25 17:42:35 · 1397 阅读 · 0 评论