使用DEV控件创建Winform主框架(Ribbion)(二)

来源:互联网 发布:android 线程数据传递 编辑:程序博客网 时间:2024/05/18 20:47

创建主框架希望所有的按钮使用同一个方法即可打开相应界面,方便后期的维护和扩展,以下介绍其中的一种方式

(一)首先单击ribbonControl1_ItemClick事件,所有的button点击时都会触发此事件,所以方法可以写在事件里面


(二)此功能的主要方法就是将界面的类名由一个字串反射为一个Form文件

方法如下:

/// <summary>
        /// 反射界面
        /// </summary>
        /// <param name="frmName"></param>
        /// <returns></returns>
        public DevExpress.XtraEditors.XtraForm ContrForm(string frmName)
        {
            try
            {
                DevExpress.XtraEditors.XtraForm tmpFrm = (DevExpress.XtraEditors.XtraForm)System.Reflection.Assembly.Load("Authority").CreateInstance(frmName, true);
                return tmpFrm;
            }
            catch (Exception ex)
            {
                return null;
            }
        }

(三)事件写入以下方法(需在button的Tag事件中写入Form的文件名,需包含命名空间)

private void ribbonControl1_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            DevExpress.XtraBars.BarButtonItem btn = e.Item as DevExpress.XtraBars.BarButtonItem;
            string frmName = "";
            if (btn.Tag != null &&!string.IsNullOrEmpty(btn.Tag.ToString()))
            {
                frmName = btn.Tag.ToString().Trim();
            }
            else
            {
                return;
            }
            DevExpress.XtraEditors.XtraForm frm = ContrForm(frmName);
            foreach (DevExpress.XtraTabbedMdi.XtraMdiTabPage item in xtraTabbedMdiManager1.Pages)
            {
                if (item.MdiChild.Name == frm.Name)
                {
                    xtraTabbedMdiManager1.SelectedPage = item;
                    return;
                }
            }
            frm.MdiParent = this;
            frm.Show();
        }

(四)以上的方法即可创建一个基本的框架,其他的功能在以后添加即可

运行效果如图


0 0