如何在 mdiparent RibbonFarm 的 mdi 子窗体中列出所有条形按钮项目?
How to list all the barButton Items in a mdichild form from mdiparent RibbonForm?
我试图在 gridcontrol 中以 mdichild 的形式在 xtraTabbedMdiManager1 中加载所有来自 mdiparent RibbonForm 的功能区页面的 barButtonItems。
DataTable dt = new DataTable();
dt.Clear();
dt.Columns.Add("ID");
dt.Columns.Add("PAGE");
dt.Columns.Add("GROUP");
dt.Columns.Add("BARBUTTON");
DataRow dr;
RibbonControl parentRibbon = ((RibbonForm)this.MdiParent).Ribbon;
RibbonPageGroup group = parentRibbon.Pages.GetPageByName("ribbonPage1").Groups.GetGroupByText("ribbonPageGroup4");
foreach (DevExpress.XtraBars.BarButtonItem item in parentRibbon.Controls)
{
dr = dt.NewRow();
dr["BARBUTTON"] = item.Name;
dt.Rows.Add(dr);
}
gridControl1.DataSource = dt;
但它没有 运行 它。它向我显示此错误 System.NullReferenceException。请帮我。提前致谢。
试试这个:
ItemLinks
将为您提供所有 BarButtonItem
访问权限。您可以阅读这篇文章以获取更多信息:
https://documentation.devexpress.com/WindowsForms/DevExpress.XtraBars.BarButtonItemLink.class
请记住,Form1 是父窗体,ribbonControl1 是父窗体功能区控件。
DataTable dt = new DataTable();
dt.Clear();
dt.Columns.Add("ID");
dt.Columns.Add("PAGE");
dt.Columns.Add("GROUP");
dt.Columns.Add("BARBUTTON");
DataRow dr;
XtraForm frm = (XtraForm)Application.OpenForms["Form1"];
RibbonControl parentRibbon = (RibbonControl)frm.Controls["ribbonControl1"];
List<BarItemLink> var = parentRibbon.Pages.GetPageByName("ribbonPage1").Groups.GetGroupByText("ribbonPageGroup1").ItemLinks.ToList();
foreach (DevExpress.XtraBars.BarItemLink bar in var)
{
dr = dt.NewRow();
dr["BARBUTTON"] = bar.Caption; // bar.Item.Name; // bar.DisplayCaption;
dt.Rows.Add(dr);
}
我试图在 gridcontrol 中以 mdichild 的形式在 xtraTabbedMdiManager1 中加载所有来自 mdiparent RibbonForm 的功能区页面的 barButtonItems。
DataTable dt = new DataTable();
dt.Clear();
dt.Columns.Add("ID");
dt.Columns.Add("PAGE");
dt.Columns.Add("GROUP");
dt.Columns.Add("BARBUTTON");
DataRow dr;
RibbonControl parentRibbon = ((RibbonForm)this.MdiParent).Ribbon;
RibbonPageGroup group = parentRibbon.Pages.GetPageByName("ribbonPage1").Groups.GetGroupByText("ribbonPageGroup4");
foreach (DevExpress.XtraBars.BarButtonItem item in parentRibbon.Controls)
{
dr = dt.NewRow();
dr["BARBUTTON"] = item.Name;
dt.Rows.Add(dr);
}
gridControl1.DataSource = dt;
但它没有 运行 它。它向我显示此错误 System.NullReferenceException。请帮我。提前致谢。
试试这个:
ItemLinks
将为您提供所有 BarButtonItem
访问权限。您可以阅读这篇文章以获取更多信息:
https://documentation.devexpress.com/WindowsForms/DevExpress.XtraBars.BarButtonItemLink.class
请记住,Form1 是父窗体,ribbonControl1 是父窗体功能区控件。
DataTable dt = new DataTable();
dt.Clear();
dt.Columns.Add("ID");
dt.Columns.Add("PAGE");
dt.Columns.Add("GROUP");
dt.Columns.Add("BARBUTTON");
DataRow dr;
XtraForm frm = (XtraForm)Application.OpenForms["Form1"];
RibbonControl parentRibbon = (RibbonControl)frm.Controls["ribbonControl1"];
List<BarItemLink> var = parentRibbon.Pages.GetPageByName("ribbonPage1").Groups.GetGroupByText("ribbonPageGroup1").ItemLinks.ToList();
foreach (DevExpress.XtraBars.BarItemLink bar in var)
{
dr = dt.NewRow();
dr["BARBUTTON"] = bar.Caption; // bar.Item.Name; // bar.DisplayCaption;
dt.Rows.Add(dr);
}