设置窗体皮肤问题(菜鸟) 大哥大姐: 小弟使用VS08 C# 弄了个窗体软件, 现在主窗体上FORM1设置了皮肤, 主窗体FORM1是个登陆窗体, 然后我调用了一个FORM2工作窗体, 这个时候FORM1就隐藏了, 我想问问, 我能在在FORM2上点击按钮来修改皮肤吗, 怎么修改呢?以上感谢各位!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 应该是可以的,看你是用哪种皮肤控件。一般都有接口让你可以调用的。比如IrisSkin:skinEngine = new Sunisoft.IrisSkin.SkinEngine()skinEngine.SkinAllForm = true;skinEngine.SkinFile = "Skin\\skin.ssk";if (!skinEngine.Active) skinEngine.Active = true; 首先先把IrisSkin2.dll文件添加到当前项目引用(解决方案资源管理器->当前项目->引用->右键->添加引用 ,找到IrisSkin2.dll文件.....之后就不用我说了吧^_^).IrisSkin2.dll文件最好放在当前项目\bin\Debug文件中.2,添加控件到工具箱;把IrisSkin2.dll文件添加到vc2005的工具箱:右键->选择项->浏览找到IrisSkin2.dll文件(文件最好放在当前项目\bin\Debug文件中)按确定,控件就添加到工具箱中了.然后把工具箱中新添加的 SkinEngine控件拖到当前项目中。3,找到你的皮肤文件,然后放到 项目的debug下,4 修改代码。在public Form1() { InitializeComponent(); }中的Initalizecomponent后加一句:this.skinEngine1.skinFile="文件名"; IrisSkin2.dll 文件我是放在DEBUG 下面, 而且我现在已经使用成功了皮肤, 我想在子窗体上做个换肤的按钮, 来换肤, 这样可以吗? 可以没问题改变 skinfile 就行。自己试试。 我在其他的窗体代码下 不让我用 skinEngine1.SkinFile skinEngine = new Sunisoft.IrisSkin.SkinEngine() 过啊, 但是不行 什么错误。你的代码?完整点贴一下其实IrisSkin的帮助文档满全的 就是主窗体上FORM1设置了皮肤, 主窗体FORM1是个登陆窗体, 然后我调用了一个FORM2工作窗体, 这个时候FORM1就隐藏了, 皮肤效果都实现了, 我想问问, 我能在在FORM2上通过点击按钮来改变皮肤吗, 怎么修改呢? private void Form1_Load(object sender, EventArgs e) { onload(); } private void button1_Click(object sender, EventArgs e) { string path = Application.StartupPath + @"\skin"; DirectoryInfo imagefile = new DirectoryInfo(path); FileInfo[] fileinfo = imagefile.GetFiles("*.ssk"); for (int i = 0; i < fileinfo.Length; i++) { comboBox1.Items.Add(fileinfo[i].Name); } comboBox1.SelectedIndex = 1; } private void onload() { string path = Application.StartupPath + @"\Config.ini"; StreamReader dr = new StreamReader(path, Encoding.GetEncoding("GB2312")); string s = dr.ReadLine(); string[] st = s.Split(new char[] { '=' }); skinEngine1.SkinFile = @"skin\" + st[1]; dr.Close(); } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { //string path = Application.StartupPath + @"\Config.ini"; //StreamWriter dr = new StreamWriter(path, true, Encoding.GetEncoding("gb2312")); //string st = "skin=" + comboBox1.Text; //dr.Write(st); //dr.Flush(); //dr.Close(); //onload(); skinEngine1.SkinFile = @"skin\" + comboBox1.Text; } private void button2_Click(object sender, EventArgs e) { MessageBox.Show("当前皮肤" + comboBox1.Text, "友情提示", MessageBoxButtons.OK, MessageBoxIcon.Information); }bin/Debug/skin 里面放全部的ssk皮肤文件拖2个按钮 一个comboBox1谢谢采纳 onload不要了 没用 我原来是定义可以保存窗体的皮肤的 就先点按钮1就可以读取了 然后下拉选择 皮肤就变了 有什么不懂的继续 我在FORM1 里面使用的skinEngine1 , 你上面的代码我在FORM2 里面用, 好像不能直接用skinEngine1.SkinFile = @"skin\" + comboBox1.Text; 那你就在往FORM2 上拖一个 控件 就好了 做个基类Form,拖个上去,然后所有Form都继承它,然后没有然后了。所有Form都能改了 为什么我在FORM2上换的只是FORM2的皮肤啊, form1 不便啊???? 为什么我在FORM2上换的只是FORM2的皮肤啊, form1 不便啊???? 你的意思是皮肤可以影响所有窗体?那么不要把控件定义在一个窗体上了,放到Program类下面 我有皮肤啊, IrisSkin2.dll 已经引用了, 现在改变主窗体 子窗体跟着变, 但是反过来怎么做呢??? 求助..简单问题 先谢谢各位 如何直接读取dataset的某个字段数据? C#图片复制问题 关于钩子的问题 oracle怎么会出现{"无法加载 DLL (oci.dll)。" }异常,明明是对的 如何调试打包好的net安装文件?也就是是否可以知道文本框的内容 ASP.net Webmtrix 1.0教程哪里有? 在WEB中实现文件打开对话框的效果(File.Open()) 继承窗体中自定义过程的继承 请问怎样可以用treeview显示一个xml(多层)文件的结构? 如何获得上一个页面的路径 sql server2000中的日期类型
skinEngine.SkinAllForm = true;
skinEngine.SkinFile = "Skin\\skin.ssk";
if (!skinEngine.Active)
skinEngine.Active = true;
2,添加控件到工具箱;
把IrisSkin2.dll文件添加到vc2005的工具箱:右键->选择项->浏览找到IrisSkin2.dll文件(文件最好放在当前项目\bin\Debug文件中)按确定,控件就添加到工具箱中了.然后把工具箱中新添加的 SkinEngine控件拖到当前项目中。
3,找到你的皮肤文件,然后放到 项目的debug下,
4 修改代码。在public Form1()
{
InitializeComponent();
}
中的Initalizecomponent后加一句:this.skinEngine1.skinFile="文件名";
过啊, 但是不行
我想问问, 我能在在FORM2上通过点击按钮来改变皮肤吗, 怎么修改呢?
private void Form1_Load(object sender, EventArgs e)
{
onload();
} private void button1_Click(object sender, EventArgs e)
{
string path = Application.StartupPath + @"\skin";
DirectoryInfo imagefile = new DirectoryInfo(path);
FileInfo[] fileinfo = imagefile.GetFiles("*.ssk");
for (int i = 0; i < fileinfo.Length; i++)
{
comboBox1.Items.Add(fileinfo[i].Name);
}
comboBox1.SelectedIndex = 1;
}
private void onload()
{
string path = Application.StartupPath + @"\Config.ini";
StreamReader dr = new StreamReader(path, Encoding.GetEncoding("GB2312"));
string s = dr.ReadLine();
string[] st = s.Split(new char[] { '=' });
skinEngine1.SkinFile = @"skin\" + st[1];
dr.Close();
} private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
//string path = Application.StartupPath + @"\Config.ini";
//StreamWriter dr = new StreamWriter(path, true, Encoding.GetEncoding("gb2312")); //string st = "skin=" + comboBox1.Text;
//dr.Write(st);
//dr.Flush();
//dr.Close();
//onload();
skinEngine1.SkinFile = @"skin\" + comboBox1.Text;
} private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show("当前皮肤" + comboBox1.Text, "友情提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}bin/Debug/skin 里面放全部的ssk皮肤文件
拖2个按钮 一个comboBox1谢谢采纳
皮肤就变了 有什么不懂的继续