c#换肤(2005)

1:控件(破解版,只限.Net2005)和皮肤下载地址如下(用影音传送带等下载工具下载):

http://download1.csdn.net/down3/20070605/05142029888.rar

DEMO程序(含源码)

http://dl2.csdn.net/down4/20070628/28181121698.rar

2:载入

下载后的rar文件里有一个IrisSkin2.dll和一个skin文件夹。

添加引用,将IrisSkin2.dll引用进项目中。

然后在解决方案资源管理器里右击项目→添加→新建文件夹,文件夹名为skin。

建完skin文件夹后再右击这个文件夹→添加→现有项,在弹出的文件选择框里选*.*所有文件,再把解压出来的skin文件夹里的所有文件全选进去。

这时候我们可以看到skin文件夹里已经有了我们添加的所有的换肤文件了。再按ctrl键选中所有的skin文件夹里的文件,在属性栏里可以看到“生成操作”一栏,默认选项是“无”,我们把它改成“嵌入的资源”。

3:类

下面我们新建一个类,把以下的代码复制进去,别忘了把命名空间改成你自己的。

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Data;

//TestSkin命令空间,别忘了改成你自己的。
namespace TestSkin
{
    class SkinClass
    {
        public static Sunisoft.IrisSkin.SkinEngine se = null;
        /// <summary>
        /// 增加换肤菜单
        /// </summary>
        /// <param name="toolMenu"></param>
        public static void AddSkinMenu(ToolStripMenuItem toolMenu)
        {
            DataSet skin = new DataSet();
            try
            {

                skin.ReadXml("skin.xml", XmlReadMode.Auto);
            }
            catch
            {

            }
            if (skin == null || skin.Tables.Count < 1)
            {
                skin = new DataSet();
                skin.Tables.Add("skin");
                skin.Tables["skin"].Columns.Add("style");
                System.Data.DataRow dr = skin.Tables["skin"].NewRow();
                dr[0] = "系统默认";
                skin.Tables[0].Rows.Add(dr);
                skin.WriteXml("skin.xml", XmlWriteMode.IgnoreSchema);
            }
            foreach (SkinType st in (SkinType[])System.Enum.GetValues(typeof(SkinType)))
            {
                toolMenu.DropDownItems.Add(new ToolStripMenuItem(st.ToString()));

                toolMenu.DropDownItems[toolMenu.DropDownItems.Count - 1].Click += new EventHandler(frm_Main_Click);
                if (st.ToString() == skin.Tables[0].Rows[0][0].ToString())
                {
                    ((ToolStripMenuItem)toolMenu.DropDownItems[toolMenu.DropDownItems.Count - 1]).Checked = true;
                    frm_Main_Click(toolMenu.DropDownItems[toolMenu.DropDownItems.Count - 1], null);

                }

            }

            toolMenu.DropDownItems.Add(new ToolStripMenuItem("系统默认"));
            toolMenu.DropDownItems[toolMenu.DropDownItems.Count - 1].Click += new EventHandler(frm_Main_Click);
            if (skin.Tables[0].Rows[0][0].ToString() == "系统默认")
            {
                ((ToolStripMenuItem)toolMenu.DropDownItems[toolMenu.DropDownItems.Count - 1]).Checked = true;
            }
        }
        static void frm_Main_Click(object sender, EventArgs e)
        {

            for (int i = 0; i < ((ToolStripMenuItem)((ToolStripMenuItem)sender).OwnerItem).DropDownItems.Count; i++)
            {
                if (((ToolStripMenuItem)sender).Text == ((ToolStripMenuItem)((ToolStripMenuItem)sender).OwnerItem).DropDownItems[i].Text)
                {
                    ((ToolStripMenuItem)sender).CheckState = CheckState.Checked;
                    DataSet skin = new DataSet();
                    skin.Tables.Add("skin");
                    skin.Tables["skin"].Columns.Add("style");
                    System.Data.DataRow dr = skin.Tables["skin"].NewRow();
                    dr[0] = ((ToolStripMenuItem)((ToolStripMenuItem)sender).OwnerItem).DropDownItems[i].Text;
                    skin.Tables[0].Rows.Add(dr);
                    skin.WriteXml("skin.xml", XmlWriteMode.IgnoreSchema);

                }
                else
                {
                    ((ToolStripMenuItem)((ToolStripMenuItem)((ToolStripMenuItem)sender).OwnerItem).DropDownItems[i]).CheckState = CheckState.Unchecked;
                }
            }
            if (((ToolStripMenuItem)sender).Text == "系统默认")
            {
                RemoveSkin();
                DataSet skin = new DataSet();
                skin.Tables.Add("skin");
                skin.Tables["skin"].Columns.Add("style");
                System.Data.DataRow dr = skin.Tables["skin"].NewRow();
                dr[0] = "系统默认";
                skin.Tables[0].Rows.Add(dr);
                skin.WriteXml("skin.xml", XmlWriteMode.IgnoreSchema);
                return;
            }
            foreach (SkinType st in (SkinType[])System.Enum.GetValues(typeof(SkinType)))
            {
                if (st.ToString() == ((ToolStripMenuItem)sender).Text)
                {
                    ChangeSkin(st);
                    return;
                }
            }
        }
        /// <summary>
        /// 改变皮肤
        /// </summary>
        /// <param name="st"></param>
        public static void ChangeSkin(SkinType st)
        {
            System.Reflection.Assembly thisDll = System.Reflection.Assembly.GetExecutingAssembly();
            if (se == null)
            {
                //TestSkin是指命名空间,这里你可以换成你自己的。
                se = new Sunisoft.IrisSkin.SkinEngine(Application.OpenForms[0], thisDll.GetManifestResourceStream("TestSkin.skin." + st.ToString() + ".ssk"));
                se.Active = true;
                for (int i = 0; i < Application.OpenForms.Count; i++)
                {
                    se.AddForm(Application.OpenForms[i]);
                }

            }
            else
            {
                //TestSkin是指命名空间,这里你可以换成你自己的。
                se.SkinStream = thisDll.GetManifestResourceStream("TestSkin.skin." + st.ToString() + ".ssk");
                se.Active = true;
            }
        }
        /// <summary>
        /// 移除皮肤
        /// </summary>
        public static void RemoveSkin()
        {
            if (se == null)
            {
                return;
            }
            else
            {
                se.Active = false;
            }
        }
    }
    /// <summary>
    /// 换肤类型
    /// </summary>
    public enum SkinType
    {
        Calmness,
        DeepCyan,
        Eighteen,
        Emerald,
        GlassBrown,
        Longhorn,
        MacOS,
        Midsummer,
        MP10,
        MSN,
        OneBlue,
        Page,
        RealOne,
        Silver,
        SportsBlack,
        SteelBlack,
        vista1,
        Vista2,
        Warm,
        Wave,
        XPSilver
    }
}

4:调用

在你的主窗体里加上一个MenuStrip菜单,建一个2级菜单(如:文件→更换皮肤),然后在Form_Load事件里写上调用代码:

private void Form1_Load(object sender, EventArgs e)
        {
            //“更换皮肤ToolStripMenuItem” 是上面例子里“更换皮肤”这个ToolStripMenuItem的Name。
            SkinClass.AddSkinMenu(更换皮肤ToolStripMenuItem);
        }

5:注

以下两个方法是主要换肤用的:

ChangeSkin方法换肤

RemoveSkin方法恢复系统默认皮肤

大家可以不用直接给单独一个窗体换肤。我以上的代码是生成一个换肤菜单,然后所有的窗体都是自动进行换肤了。

 

 

 

另一篇:

/**************************************************************************************************************
 *                                                                                                            *
 *     1、添加DLL文件IrisSkin2.dll。右击工程---->添加--->现有项------>找到 IrisSkin2.dll------->确定          *
 *     2、更改IrisSkin2.dll属性:把 生成操作 改为“嵌入的资源”                                               *
 *     3、添加命名空间的引用:右击项目中的  引用----->添加...---->浏览----->找到IrisSkin2.dll----->确定       *
 *     4、添加一个类,把以下代码复制进去。                                                                    *
 *     5、在程序中调用                                                                                        *
 *                                                                                                            *
 *     using zhxl.TestFace                                                                                    *
 *                                                                                                            *
 *     AppFace2005.ShowFace(@"D:/C#/C#换肤2005/MSN/MSN.ssk");//直接调用文件换肤                               *
 *     AppFace2005.ChangeSkin();                             //更改皮肤,系统会自动弹出窗体让选择SSK文件      *
 *     AppFace2005.RemoveSkin();                             //清除皮肤                                       *
 *                                                                                                            *
 **************************************************************************************************************/
using System;
using System.Collections.Generic;
using System.Text;
using Sunisoft.IrisSkin;
using System.Windows.Forms;

namespace zhxl.TestFace
{
    class AppFace2005
    {
        public static Sunisoft.IrisSkin.SkinEngine skin = new SkinEngine();
        /// <summary>
        /// 显示皮肤
        /// </summary>
        /// <param name="sskFileName"></param>
        public static void ShowFace(string sskFileName)
        {
            skin.SkinFile =sskFileName; //MP10.ssk是皮肤文件
            skin.Active = true;
        }
        /// <summary>
        /// 移除皮肤
        /// </summary>
        public static void RemoveSkin()
        {
            if (skin == null)
            {
                return;
            }
            else
            {
                skin.Active = false;
            }
        }
        /// <summary>
        /// 更改皮肤
        /// </summary>
        public static void ChangeSkin()
        {
            OpenFileDialog ofdlg = new OpenFileDialog();
            ofdlg.Title = "切换皮肤--请选择皮肤文件";
            ofdlg.FileName = "";
            ofdlg.Filter = "皮肤文件(*.SSK)|*.ssk";
            if (ofdlg.ShowDialog() == DialogResult.OK)
            { ShowFace(ofdlg.FileName); }
        }
    }
}

以下是应用
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using zhxl.TestFace;

namespace TestFace
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            AppFace2005.ShowFace(@"D:/C#/C#换肤2005/MSN/MSN.ssk");
        }

        private void 切换皮肤ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            AppFace2005.ChangeSkin();
        }

        private void 清除皮肤ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            AppFace2005.RemoveSkin();
        }

        private void 新建窗口ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form2 f2 = new Form2();
            f2.Show();
        }
    }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SkinEngine 3.4.7 安装版SkinEngine控件是一组用于优化界面设计可视化控件,它重写了大部分可视化组件的源代码,使其外观更为美观漂亮,美化了程序界面的设计,使得程序员可以把更多的精力放在系统软件功能的设计上.首先从网上下载SkinEngine控件的安装包,我下载的是3.4.7版本,下载以后发现这个控件的安装竟然是windows的软件安装方式(而不是delphi安装第三方控件的安装包方式),安装后发现系统的程序菜单多了一项SkinEngine,里面只有一项内容,就是它的Help文件.什么也不管兴冲冲的打开delphi 7,什么也没有发生?所以打开SkinEngine程序的那个Help文件一看,原来要使用这个控件组还需要进一步的安装.安装顺序如下:打开delphi 6,然后文件--->open,找到SkinEngine的安装目录(默认是ksdev),进一步到\sources\packages目录下面,首先找到se_dsgn_d6.dpk 文件,先编译后安装;然后再找到se_db_dsgn_d6.dpk文件,同样处理,此时delphi的控件组中多出来两组:SkinEngine和SkinEngine DB.前者用于delphi程序普通界面的设计,后者用于数据库及其数据表相关内容的界面的设计,每一个组件的使用基本上都有一个delphi组件与之相对应,因此使用起来很方便.然后将“F:\DelphiProjects\VCL\SkinEngine 3.4.7 汉化版”放入Library path中。拖一个button到页面上,编译,通不过,提示找不到相关的DCU文件,没办法,重新回到SkinEngine的安装目录中,把sources目录中的所有文件拷贝到delphi6/lib目录下面,再次编译通过了.具体为什么会这样我也不是很清楚.希望能有高手指点一下.现在就可以安全的享用SkinEngine这道美餐了,合理的搭配好各个部件的使用,可以很轻松的编出来漂亮得不是一般的程序界面.卸载过程:菜单project->options->packages->在design packages下选择要删除的-〉remove按钮
好的,下面是一份基于C#和SQL Server 2005的数据库应用系统开发基础作业参考: 题目:设计并实现一个简单的学生成绩管理系统 要求: 1. 学生信息包括:学号、姓名、性别、年龄、班级。 2. 学生成绩信息包括:学号、姓名、成绩、科目。 3. 实现学生信息和成绩信息的增、删、改、查功能。 4. 实现成绩的统计功能,包括总分、平均分、最高分、最低分等。 5. 界面友好,操作简单易用。 6. 使用C#编写程序,使用SQL Server 2005作为数据库管理系统。 7. 代码规范,注释清晰。 实现步骤: 1. 创建数据库:在SQL Server 2005中创建名为“Student” 的数据库,然后创建两张表格“StudentInfo”和“ScoreInfo”,分别用于存储学生信息和成绩信息。 2. 编写C#程序:使用Visual Studio创建一个Windows窗体应用程序,然后设计并实现界面,包括增、删、改、查、统计等功能。 3. 连接数据库:使用C#中的SqlConnection类连接数据库,然后使用SqlCommand类实现对数据库的增、删、改、查等操作。 4. 实现成绩统计功能:使用C#编写统计代码,计算总分、平均分、最高分、最低分等数据,并在界面上显示出来。 5. 完善程序:进行代码优化、注释添加、异常处理等完善工作,保证程序的稳定性和可维护性。 参考代码: 以下是一个简单的C#代码示例,用于实现学生信息的查询功能: ```csharp // 创建SqlConnection对象,连接数据库 SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=Student;Integrated Security=True"); conn.Open(); // 创建SqlCommand对象,执行SQL查询语句 SqlCommand cmd = new SqlCommand("SELECT * FROM StudentInfo WHERE Name = @Name", conn); cmd.Parameters.AddWithValue("@Name", "Tom"); // 创建SqlDataAdapter对象,填充数据到DataSet中 SqlDataAdapter da = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); da.Fill(ds); // 显示查询结果 if (ds.Tables[0].Rows.Count > 0) { DataRow row = ds.Tables[0].Rows[0]; Console.WriteLine("学号:{0},姓名:{1},性别:{2},年龄:{3},班级:{4}", row["ID"], row["Name"], row["Gender"], row["Age"], row["Class"]); } else { Console.WriteLine("未找到该学生信息!"); } // 关闭连接 conn.Close(); ``` 以上代码仅作为参考,实际开发中需要根据具体需求进行修改和完善。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值