您的位置:首页 > Web前端 > CSS

公共事件,修改主窗体和子窗体的(主题)样式

2014-08-14 16:56 155 查看

主窗体修改主题样式时,同时修改子窗体的主题样式

系统展示效果:

一、项目结构

二、代码分析

  SetAllFormStyle 界面对象参数

  

  

/// <summary>
/// 编写:yj
/// 日期:2014-08-14
/// 描述:系统界面参数
/// </summary>
public class SetAllFormStyle: System.EventArgs
{
public C1.Win.C1Ribbon.VisualStyle autoStyle { get; set; }
}

   CommonStyle 全部公共对象

/// <summary>
/// 编写:yj
/// 日期:2014-08-14
/// 功能:公共静态事件
/// </summary>
public static class CommonStyle
{
public static C1.Win.C1Ribbon.VisualStyle AllFormSytle = C1.Win.C1Ribbon.VisualStyle.Office2007Blue;

public static event EventHandler<SetAllFormStyle> RFIDReaderClick;

public static void OnRFIDReaderClick(object sender, SetAllFormStyle e)
{
if (RFIDReaderClick != null)
{
RFIDReaderClick(sender, e);
}
}
}

 

  BaseForm.cs 基类文件

  

private void BaseFrom_Load(object sender, EventArgs e)
{
CommonStyle.RFIDReaderClick += new EventHandler<SetAllFormStyle>(CommonStyle_RFIDReaderClick);
}

void CommonStyle_RFIDReaderClick(object sender, SetAllFormStyle e)
{
this.VisualStyle = e.autoStyle;
}

   说明:在load方法中,注册公共事件。

  

  

  Form1.cs为设置窗体样式窗体

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.Text == "Office2010Blue")
{
this.VisualStyle = C1.Win.C1Ribbon.VisualStyle.Office2010Blue;
}
else if (comboBox1.Text == "Office2010Silver")
{
this.VisualStyle = C1.Win.C1Ribbon.VisualStyle.Office2010Silver;
}
else if (comboBox1.Text == "Office2010Black")
{
this.VisualStyle = C1.Win.C1Ribbon.VisualStyle.Office2010Black;
}
else if (comboBox1.Text == "Office2007Blue")
{
this.VisualStyle = C1.Win.C1Ribbon.VisualStyle.Office2007Blue;
}

SetAllFormStyle safs = new SetAllFormStyle();
safs.autoStyle = this.VisualStyle;
CommonStyle.OnRFIDReaderClick(sender, safs);
}

     From2,Form3所有窗体都继承BaseForm,这样就可以实现,修改Form1的主题时,所有窗体的主题样式都改变了。

 

  

 

转载于:https://www.cnblogs.com/ancient-sir/p/3912963.html

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: