创建主框架希望所有的按钮使用同一个方法即可打开相应界面,方便后期的维护和扩展,以下介绍其中的一种方式
(一)首先单击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();
}
(四)以上的方法即可创建一个基本的框架,其他的功能在以后添加即可
运行效果如图