登录
首页 » C# » winform窗体换肤功能实现

winform窗体换肤功能实现

于 2013-01-07 发布
0 228
下载积分: 1 下载次数: 0

代码说明:

winform 换新皮肤

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • C# 根据硬件信息 生成软件注册码 示例源码
    C# 根据硬件信息 生成软件注册码 示例源码
    2018-02-17下载
    积分:1
  • 模板匹配算法
    模板匹配算法
    2016-12-21下载
    积分:1
  • EF Code First简介及一个入门级实例
    一、EF Code First简介 EntityFramework 代码优先   二、EF Code First第一个简单实例 1、开发环境及数据库说明 开发环境:Visual Studio 2010 Ultimate sp1 Sql Server 2008 R2 数据库:Northwind 2、实例代码结构 结构说明: App:控制台应用程序 Data:数据访问 Domain:实体类 3、安装Entity Framework   在Visual Studio编辑器中点击Tools -> Library Package Manager -> Package Manager Console,在Package Manager Console窗口中执行下面语句,安装最新版Entity Framework。 PM> Install-Package EntityFramework   App层和Data层分别添加对EntityFramework的引用:     在App层安装EntityFramework之后,将自动添加App.config和packages.config文件。   App.config配置Entity Framework版本信息及数据库连接信息,修改其中数据连接信息以适应本地实际环境。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15   packages.config现实当前项目使用的package: 1 2 3 4 4、实例代码 Domain中Category.cs 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace Northwind.Domain.Entities 7 { 8 public class Category 9 { 10 /// 11      /// 分类ID 12      /// 13 public int CategoryID { get; set; } 14 15 /// 16      /// 分类名称 17      /// 18 public string CategoryName { get; set; } 19 } 20 } Data中NorthwindContext.cs 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 using System.Data.Entity; 7 8 using Northwind.Domain.Entities; 9 10 namespace Northwind.Data 11 { 12 public class NorthwindContext : DbContext 13 { 14 public DbSet Categories { get; set; } 15 } 16 } App中Program.cs 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 using Northwind.Data; 7 using Northwind.Domain.Entities; 8 9 namespace Northwind.App 10 { 11 class Program 12 { 13 static void Main(string[] args) 14 { 15 Category c = new Category() { CategoryName = "电子数码" }; 16 17 using (NorthwindContext db = new NorthwindContext()) 18 { 19 db.Categories.Add(c); 20 db.SaveChanges(); 21 } 22 23 Console.WriteLine("Finish"); 24 Console.ReadKey(); 25 } 26 } 27 } 5、运行说明   由于在上面的数据库连接字符串中并未包含指定的数据库名称,运行成功之后,将在本地数据引擎中创建如下数据库和表:   数据库名称:Northwind.Data.NorthwindContext   表名称:Categories 6、示例代码附件
    2014-04-22下载
    积分:1
  • XLT Unity3D 热修复示例源码
    使用ILRuntime实现的类似XLUA功能的Unity3D下热修复BUG的解决方案请使用Unity2019.2.17f1版本打开,其他版本问题,请自行修复报错提示!Unity3D 5.x版本以下可以使用Unity4.7.2分支~ 和XLUA一样的地方和XLUA原理类似,注入和XLUA基本一致。 不一样的地方使用C#来进行代码的热更,避免项目内lua与C#代码交叉混杂,修复BUG时,需要C#一份,lua一份。 目录以及文件说明: Project-----Assets/XIL             --- 所有XIL所用到的文件----Assets/XIL/ILSource    --- ILRuntime插件源文件----Assets/XIL/Scripts      --- 注入以及初始化代码----Assets/XIL/Auto        --- 自动生成注入的代码以及自动生成的委托和函数的注册(如有此目录下的脚本报错,则可以直接删除此目录,然后重新生成委托,CLR绑定以及重新注册注入类型)----Hot                    --- 补丁源文件存放目录----Hot.sln                 --- 补丁源文件VS解决方案----DyncDll.csproj          --- 补丁项目工程文件----Data/DyncDll.dll        --- 补丁dll文件----Data/DyncDll.pdb       --- 补丁dll的调试文件使用步骤以及菜单项说明:注意:菜单项会根据是否开启热更宏而有所不同 XIL/插件/开启               -- 开启热补丁宏XIL/插件/取消               -- 关闭热补丁宏XIL/插件/PDB开启           -- 加载PDB调试文件XIL/插件/PDB取消           -- 不加载PDB调试文件XIL/注册需要热更的类        -- 生成注入所需要的成员接口XIL/取消需要热更的类        -- 清除注入所需要的成员接口XIL/一键清除                -- 清除自动生成的脚本XIL/一键生成                -- 自动生成委托注册以及注入所需要的脚本XIL/委托自动生成            -- 热更当中操作C#层的委托,需要注册委托相关的类型以及转换代码 这里可自动分析项目当中所有用到的委托,自动注册XIL/清除委托自动生成的脚本  --清除委托自动生成的脚本,删除一些C#脚本,或修改,有可能引起报错,这时可以清除掉自动生成的注册脚本XIL/CLR绑定                -- 非反射的方式调用C#层的接口,可大幅度提高运行效率,一些常用的接口可考虑在GenerateCLRBinding文件当中添加需要CLR绑定的类型。XIL/Hotfix Inject In Editor    -- 编辑器下注入接口只需要两步即可1 先开启补丁宏2 点击一键生成初始化以及资源接口1 需要在项目启动或适当位置调用初始化接口:wxb.hotMgr.Init();2 非编辑器下,需要自己创建加载文件的接口,可参考编辑器下的资源加载类EditorResLoad。生成补丁dll1 打开Hot解决方案2 替换DyncDll工程依赖UnityEngine.dll以及UnityEngine.UI.dll的文件,在目录Hot下,默认是Unity2018.2.11f1版本的,可以替换为自己项目对应的版本3 编译运行DyncDll工程,编译成功,即可在Data目录下生成补丁库。如何添加需要热更的类型:1 使用HotfixAttribute属性宏来修饰类型2 默认情况下所有类型都会被热更注入,如需要自己调整,可修改源文件ExportIL.cs里,FixMarkIL接口,自定义需要热更的类型生成静态DelegateBridge字段名称的规则 没有同名函数,则固定使用"__Hotfix_函数名"方式 有多个同名函数,对这些同名函数进行排序,排序规则如下(可参考接口wxb.Editor.Hotfix.getDelegateName的逻辑):1 参数个数少的在前2 进行字符串拼接,组成key值,规则如下"返回值全名 函数名(参数类型全名1,参数类型全名2,...)",之后通过key值比较,理论上,不同函数,key值是不会相同的 排序之后,取得对应函数在数组当中的下标来进行拼接如何,规则如下"__Hotfix_函数名_下标"的方式 为什么排序,主要是希望能够一眼看过去就知道函数对应的下标是多少,方便Hotfix,以及保证源脚本不变的情况下,每次Hotfix生成的字段名是一致的 如何替换函数一般有三种方式 通过函数名直接替换hotMgr.ReplaceFunc,可参考函数HotHelloWorld.Reg 通过自动生成的接口DelegateBridge对应的字段名,可直接使用hotMgr.ReplaceField,可参考函数HotHelloWorld.Reg 通过添加属性来自动注册,可参考脚本HotHelloWorld.cs与HotTemplate.cs,这里简单说明下, 要替换一个接口,要知道至少三个信息 替换的原类型 替换的接口对应的DelegateBridge字段的名字 热更当中,要替换的MethodInfo可添加属性ReplaceType到热更的类当中,表示此类型下的接口,默认替换的类型可添加属性ReplaceFunction到热更的接口当中,表示此接口需要替换哪个类型的哪个接口,可使用三种方式初始化1 ReplaceFunction(System.Type type) 替换type类型下同名的接口2 ReplaceFunction() 替换ReplaceType类型下同名的接口3 ReplaceFunction(string fieldNameOrTypeName), fieldNameOrTypeName值前缀不同,有不同的含义      a __Hotfix_开头,替换ReplaceType类型fieldName字段对应的接口      b 替换类型全名为fieldNameOrTypeName下同名的接口4 ReplaceFunction(System.Type type, string fieldName) 替换type类型fieldName字段对应的接口5 ReplaceFunction(string type, string fieldName) 替换类型全名为type下fieldName字段对应的接口 一般在没有同名函数情况下,可使用1,2种方式注册,有些类型为非公有类型的,可通过3,5接口,通过类型名来注册有同名函数情况下,就需要使用3,4, 5方式进行注册,可参考HotHelloWorld.cs脚本 通过属性进行自动注册的,假如在类型中含有对应DelegateBridge静态字段的Hotfix变量,则会自动对此变量进行赋值,保存一些参数在实际使用补丁方式热更时,经常遇到一些,只是需要在原有函数之前或之后添加一些代码的情况,这时,你可以通过Hotfix来执行原先代码可参考HotHelloWorld.Start的使用建议使用第3种方式进行接口替换 建议:最好安装下.NET Reflector,可用来反编译被注入的dll,查看源文件,可加深理解XIL的实现原理。项目下文件Library/ScriptAssemblies/Assembly-CSharp.dll这u3d生成的dll文件,原理上,也是修改此文件实现热更新功能,可使用.NET Reflector进行反编译查看源码 热更下模拟MonoBehaviour组件,用法可以参考hotScripts下脚本,可以做到平时在非热更环境下开发调试,到要发版本时再转换为热更方式Unity5.6以下版本,编辑器下使用的Mono库,会报错,应该是Unity3D的Bug。可以使用源文件来替换dll,源文件在压缩包Mono.Cecil.zip下,可解压此文件,放到在Assets/XIL/Scripts/ILHotfix/Editor/下,并删除这三个Dll(Mono.Cecil.dll, Mono.Cecil.Mdb.dll,MonoCecil.Pdb.dll)
    2020-11-27下载
    积分:1
  • STM32远程升级源码(包括上位机)
    【实例简介】
    2021-06-02 00:31:33下载
    积分:1
  • C# 指纹识别系统 源码+数据库下载
    仅供参考学习
    2015-12-23下载
    积分:1
  • C# 旅游管理系统源码下载
    C# 旅游管理系统源码下载
    2017-07-05下载
    积分:1
  • WPF中多窗体实例
    在WPF中,没有默认提供MDI子窗体控件,如果有用到多窗体的朋友,可以参考一下。
    2013-11-25下载
    积分:1
  • C++读取Windows系统硬盘信息
    C++语言读取Windows系统硬盘信息
    2019-12-05下载
    积分:1
  • DSP CAN开发例程
    【实例简介】DSP CAN开发例程
    2021-12-11 00:41:34下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载