MDI窗体与皮肤skinEngine

本文介绍了一种使用skinEngine控件实现Winform应用界面换肤的方法,并提供了读取配置文件来加载用户选择皮肤的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

目标:为了使 winform 界面更美观,加深用户体验,可根据用户喜好选择皮肤。

 

设计思路:在 Winform 中采取存取配置文件的形式记忆用户选择的皮肤文件名及路径。

 

设计方法:使用基于 .net 开发的换肤控件 skinEngine ,将 IrisSkin2.dll (支持 .net2.0 )加至 vs2005 的工具箱中。即可进行开发了。

 

问题描述: 从配置文件中读取客户设置的皮肤文件路径时,有可能为空或文件不存在。这样的话,会导致 MDI 窗体的皮肤加载出现错误。

 

解决方法:当出现皮肤文件路径为空或文件不存在时,就不加载皮肤文件,即设置 skinEngine 的属性 Active SkinAllForm

 

所以加载配置文件时加入如下判断:

            // 获取客户端皮肤路径(mocklystone 2009-10-12)

            this .skinEngine1.SkinFile = ConfigSettings .GetSkin("Skin" , "skinfile" );

            string name = ConfigSettings .GetSkin("Skin" , "skinname" );

            if (string .IsNullOrEmpty(this .skinEngine1.SkinFile)||!System.IO.File .Exists(skinEngine1.SkinFile))

            {

                this .skinEngine1.Active = false ; // 设置不加载皮肤

                this .skinEngine1.SkinAllForm = false ; // 设置皮肤只在主窗体显示,不加载于其他所有的窗体

 

            }

 

扩展知识: MDI 窗体加载

 

读取配置文件类

 

    public class ConfigSettings

    {

        static string configPath = Application .StartupPath + "//config.ini" ;

// 导入非托管代码

        [DllImport ("kernel32" )]

        private static extern void WritePrivateProfileString(string section, string key, string value, string filePath);

        [DllImport ("kernel32" )]

        private static extern double GetPrivateProfileString(string section,string key,string def,StringBuilder retVal,int size,string filePath);

 

         // 设置config.ini 的值

        public static void SetValue(string section,string key, string value)

        {

            WritePrivateProfileString(section,key,value,configPath);

        }

        /// <summary>

        /// 获取客户端的皮肤文件(mocklystone 2009-10-12)

        /// </summary>

        /// <param name="section"></param>

        /// <param name="key"></param>

        /// <returns></returns>

        public static string GetSkin(string section, string key)

        {

            StringBuilder temp = new StringBuilder (100);

            GetPrivateProfileString(section, key, "" , temp, 100, configPath);

            return temp.ToString();

        }

}

 

winfrom皮肤控件下载地址:http://download.youkuaiyun.com/source/2076416

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值