我想通过点击子菜单的选项来切换form的皮肤,可是没法实现(我下的是第三方控件),比如说下面代码,form载入的时候皮肤确实是海洋波浪式的,可是我点击子菜单"钢铁本色"的click事件时,应该皮肤变化了对吧,可是就没变,请大家指教一下。
private void Form1_Load(object sender, EventArgs e)
        {
            string skin = "Wave.ssk";
          
            this.skinEngine1.SkinFile = skin ;        }
private void 钢铁本色ToolStripMenuItem_Click(object sender, EventArgs e)
        {            this.skinEngine1.SkinFile = "steelBlack.ssk";
        }

解决方案 »

  1.   

    皮肤文件复制到bin目录下,添加引用
    Sunisoft.IrisSkin.SkinEngine skin = new Sunisoft.IrisSkin.SkinEngine();
    skin.SkinFile = "Wave.ssk"; 
    skin.Active = true; 
      

  2.   

    没用过winform的,web的可以用theme来实现
      

  3.   

    谢谢,各位的热心解答,#1楼和#2楼的方法,我都试了,还是没有实现我要的效果,我要的效果是点击子菜单"钢铁本色"的click事件时,form的皮肤由 Form1_Load载入时"Wave.ssk"变为 "steelBlack.ssk";
      

  4.   

    我自己是写的一个类实现的,也不复杂,不过我是第三方控件,很漂亮,帖一点源码给你点思路吧
    public eOffice2007ColorScheme StringToScheme(string str)
            {
                switch (str)
                {
                    case "Blue":
                        return eOffice2007ColorScheme.Blue;
                    case "Black":
                        return eOffice2007ColorScheme.Black;
                    case "VistaGlass":
                        return eOffice2007ColorScheme.VistaGlass;
                    case "Silver":
                        return eOffice2007ColorScheme.Silver;
                    default:
                        return eOffice2007ColorScheme.Blue;
                }
            }
    private eOffice2007ColorScheme m_BaseColorScheme = PropertyClass.BaseColorScheme;
      

  5.   

    #5楼的图品贴错了,keke...,为了让大家更明白我的意思,我想贴的是#6楼的图品,就是如图品所示,载入的时候是海洋波浪的皮肤,我想要的效果是点击钢铁本色的子菜单项时切换皮肤。
      

  6.   

    你确定可以找到——steelBlack.ssk文件吗??
      

  7.   

    Sunisoft.IrisSkin.SkinEngine skin = new Sunisoft.IrisSkin.SkinEngine();
    skin.SkinFile = "RealOne.ssk";
    skin.AddForm(this);
      

  8.   

    我确定可以找到——steelBlack.ssk文件,因为我所有的皮肤文件都放在bin目录下的debug文件里了。上述仁兄的方法都试了,至今还是没有解决该问题,望大家再赐教。
      

  9.   

    谢谢大家的支持,通过大家的提点,我问题终于解决了,与大家分享一下。
    建立与form窗体同生命周期皮肤变量
    Sunisoft.IrisSkin.SkinEngine skin = new Sunisoft.IrisSkin.SkinEngine();
    private void Form1_Load(object sender, EventArgs e)
            {
              skin.SkinFile = "MSN.ssk";//窗体载入时赋给一个皮肤文件
                skin.Active = true;//使其生效
            }
    另外编写装载皮肤函数。
    private void loadSkin(string skinname)
            {
                skin.SkinFile = skinname;
                skin.Active = true;
            }  
    //调用皮肤函数即可切换皮肤了。
    private void 海浪之蓝ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                loadSkin("Wave.ssk");
            }        private void 蓝钻之光ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                loadSkin("DiamondBlue.ssk");
            }