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

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

系统展示效果:

一、项目结构

二、代码分析

  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的主题时,所有窗体的主题样式都改变了。

  

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

时间: 2024-11-05 18:34:20

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

2016.6.18主窗体、子窗体InitializeComponent()事件、Load事件发生顺序以及SeleChanged事件的发生

主窗体,子窗体的InitializeComponent(构造函数).Load事件执行顺序 1.主窗体定义事件 new 主窗体() 构造函数进入主窗体InitializeComponent函数,该函数中有各字框体的new创建语句,因此: 2.依次执行各子窗体InitializeComponent函数 3.主窗体new事件结束后,并不创建任何窗体或子窗体,也就没有任何Load事件发生.直到主窗体Show事件. 4.主窗体Show事件后,顺序执行各子窗体Load事件,注意!!并不是先执行主窗体Load

Flex中利用事件机制进行主程序与子窗体间参数传递

在开发具有子窗体,或者itemrenderer的应用时,常常涉及到子窗体向父窗体传递参数或者从itemrenderer内的控件向外部的主程序传递参数的需求.这些都可以通过事件机制这一统一方法加以解决.在我的应用中有两个需求: 1.左侧的List控件的itemrenderer中包含CheckBox控件,当其状态改变时需要同时改变主程序中的一个数组变量的内容:2.左下方的"新增届次"按钮会弹出一个窗口,窗口中输入届次信息后需要修改数据库中的表,同时表的更改结果要能够在List控件中体现出来

C#父窗体跟子窗体的控件操作

很多人都苦恼于如何在子窗体中操作主窗体上的控件,或者在主窗体中操作子窗体上的控件.相比较而言,后面稍微简单一些,只要在主窗体中创建子窗体的时候,保留所创建子窗体对象即可. 下面重点介绍前一种,目前常见的有两种方法,基本上大同小异: 第一种,在主窗体类中定义一个静态成员,来保存当前主窗体对象,例如: public static yourMainWindow pCurrentWin = null; 然后在主窗体构造函数中,给静态成员初始化,如下: pCurrentWin = this; 那么在子窗体

附实例!实现iframe父窗体与子窗体的通信

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由前端林子发表于云+社区专栏 本文主要会介绍如何基于MessengerJS,实现iframe父窗体与子窗体间的通信,传递数据信息.同时本文会提供一个可运行的实例代码,实现在父窗体中,获取到来自子窗体的数据的效果. 0.背景介绍 (1)需要在当前的前端项目中,使用iframe嵌套别的站点页面. (2)当子窗体触发了一个事件后,要给父窗体传一个跳转地址的url.父窗体监听到这个事件后,根据接收到的url,来更新当前父窗体的url,实现页

父窗体、子窗体关系设置

父窗体内函数: /// <summary>  /// 电台频率框获取焦点后 弹出数字窗口  /// </summary>  /// <param name="sender"></param>  /// <param name="e"></param>  private void txtFrequency_Enter(object sender, EventArgs e)  {   DigitDi

C#如何操作另一个窗体:[1]主窗体操作子窗体(转)

方法/步骤 1 首先,我们建立一个项目,然后往窗体拖入一个按钮 2 我们在项目管理那里,右击,选择"添加",再选择"windows窗体" 3 我们回到窗体1,双击按钮,打开代码窗口   在代码窗口中,我们输入代码 Form2 a = new Form2(); a.Show(); 这几句话的意思是,实例化一个Form2,然后弹出窗体   我们启动程序测试,点击程序窗口中的按钮   OK,现在你看到form2弹出来   我们回到form1中,打开form1的代码,然后在

c# 主窗体更新子窗体 进程间通信

1.窗体间数据传输 主窗体连续不断更新给子窗体  本文章来源于网络 年代久远 如有侵犯 请联系删除 1.通过 在windows form之间传值,我总结了有四个方法:全局变量.属性.窗体构造函数和delegate. 第一个全局变量: 这个最简单,只要把变量描述成static就可以了,在form2中直接引用form1的变量,代码如下: 在form1中定义一个static变量public static int i= 9 ; 1 Form2中的钮扣按钮如下: 2 3 private void butt

父窗体与子窗体的右键菜单合并(子窗体最大化后)

1 private void 打开子窗体ToolStripMenuItem_Click(object sender, EventArgs e) 2 { 3 Form2 f = new Form2();//创建窗体对象 4 f.MdiParent = this;//设置父窗体属性 5 f.Show();//显示窗体 6 f.Resize += //为窗体添加事件 7 new EventHandler(f_Resize); 8 } 9 10 void f_Resize(object sender,

asp.net 父窗体获取子窗体的返回值,可用来对父窗体局部更新

今天在项目上遇到了这个问题,其实只是window.returnValue的简单应用,不是asp.net的专属内容.作为积累,记录一个简单的实现模型. 图1  用到的文件 从图1中我们可以看到,只用到了两个页面,其中Default.aspx作为父页面,Default2.aspx作为子页面被弹出.Default.aspx页面上有两个TextBox一个Button,代码如下: 1 <%@ Page Language="C#" AutoEventWireup="true&quo