基于WinForm开发的Ribbon界面案例的扩展

article/2025/9/20 9:00:09

 

增加 Ribbon 三联排小按钮   文本菜单的动态添加删除及提示 ribbon按钮的动态添加删除 checkbox按钮下拉按钮样式

基于WinForm开发的Ribbon界面案例的扩展

基于WinForm开发的Ribbon界面案例的扩展

基于WinForm开发的Ribbon界面案例的扩展

基于WinForm开发的Ribbon界面案例的扩展

 public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

 

            UIApplication uiapp = new UIApplication(this.aeRibbonControl1);

            uiapp.CreateTab("设计专区");

            uiapp.CreateTab("结构");

            uiapp.CreateTab("附加模块");

           

 

            RibbonPanel panel = uiapp.CreateRibbonPanel("设计专区", "项目特征");

            PushButton pb = new PushButton("暖通设计", Properties.Resources.apply, true, "");

 

            pb.Click += new Ribbon.RibbonHandler(() =>

            {

 

                MessageBox.Show("1234567890暖通设计" + aeRibbonControl1.tabList[aeRibbonControl1.CurrentTab].name);

            });

 

            PushButton pb2 = new PushButton("建造楼板及天花板", Properties.Resources.white, true, "1234");

            pb2.Click += new Ribbon.RibbonHandler(() =>

            {

 

                MessageBox.Show("1234567890建造楼板及天花板" + aeRibbonControl1.tabList[aeRibbonControl1.CurrentTab].name);

            });

 

            PushButton pb3 = new PushButton("参数设计", Properties.Resources.white, false, "1234");

            pb3.Click += new Ribbon.RibbonHandler(() =>

            {

 

                MessageBox.Show("1234567890参数设计" + aeRibbonControl1.tabList[aeRibbonControl1.CurrentTab].name);

            });

 

            PushButton pb4 = new PushButton("设计", Properties.Resources.white, true, "5678");

            pb4.Click += new Ribbon.RibbonHandler(() =>

            {

 

                MessageBox.Show("1234567890设计" + aeRibbonControl1.tabList[aeRibbonControl1.CurrentTab].name);

            });

 

 

            PushButton small_1 = new PushButton("轴线合一", Properties.Resources._2_7, false, "轴线合一");

            small_1.Click += new Ribbon.RibbonHandler(() =>

            {

 

                MessageBox.Show("轴线合一" + aeRibbonControl1.tabList[aeRibbonControl1.CurrentTab].name);

            });

 

            PushButton small_2 = new PushButton("轴线删除", Properties.Resources._2_8, false, "轴线删除");

            small_2.Click += new Ribbon.RibbonHandler(() =>

            {

 

                MessageBox.Show("轴线删除" + aeRibbonControl1.tabList[aeRibbonControl1.CurrentTab].name);

            });

 

            PushButton small_3 = new PushButton("轴线连接", Properties.Resources._2_9, false, null);

            small_3.Click += new Ribbon.RibbonHandler(() =>

            {

 

                MessageBox.Show("轴线连接" + aeRibbonControl1.tabList[aeRibbonControl1.CurrentTab].name);

            });

 

            PushButtonStack smallStack = new PushButtonStack("联排按钮",true);//必须满足三个小按钮 如果数量不对 建议使用下拉按钮

 

            smallStack.AddItem(small_1);

            smallStack.AddItem(small_2);

            smallStack.AddItem(small_3);

 

          

 

            PullDownStack ps = new PullDownStack("用户界面", Properties.Resources.green, true, "5678");

            PullDownStack ps2 = new PullDownStack("本地\n数据", Properties.Resources.green, false, "5678");

 

            PullDownButton pd = new PullDownButton("分离中心文件", Properties.Resources._20, false, null);

            pd.Click += new Ribbon.RibbonHandler(() =>

            {

 

                MessageBox.Show("分离中心文件");

 

            });

            PullDownButton pd2 = new PullDownButton("按工作集导出NWC文件", Properties.Resources.orange, false, null);

            pd2.Click += new Ribbon.RibbonHandler(() =>

            {

                MessageBox.Show("按工作集导出NWC文件");

 

            });

            PullDownButton pd3 = new PullDownButton("按中心文件导出IFC文件", Properties.Resources.orange, false, null);

            pd3.Click += new Ribbon.RibbonHandler(() =>

            {

                MessageBox.Show("按中心文件导出IFC文件");

 

            });

            PullDownButton pd4 = new PullDownButton("模型显隐", Properties.Resources.orange, false, null);

            pd4.Click += new Ribbon.RibbonHandler(() =>

            {

                MessageBox.Show("模型显隐");

 

            });

 

            PullDownButton pd5 = new PullDownButton("模型显隐", Properties.Resources.blue, false, null);

            pd5.Click += new Ribbon.RibbonHandler(() =>

            {

                MessageBox.Show("模型显隐");

                pd5.IsEnabled = false;

            });

            PullDownButton pd6 = new PullDownButton("局部三维", Properties.Resources.blue, false, null);

            pd6.Click += new Ribbon.RibbonHandler(() =>

            {

                MessageBox.Show("局部三维");

 

            });

            PullDownButton pd7 = new PullDownButton("构件定位", Properties.Resources.blue, false, null);

            pd7.Click += new Ribbon.RibbonHandler(() =>

            {

                MessageBox.Show("构件定位");

 

            });

            PullDownButton pd8 = new PullDownButton("轴网创建", Properties.Resources.blue, false, null);

            pd8.Click += new Ribbon.RibbonHandler(() =>

            {

                MessageBox.Show("轴网创建");

 

            });

 

 

            PullCheckDownStack pcds = new PullCheckDownStack("选项卡",Properties.Resources.white,false,null);

 

            CheckButton cb1 = new CheckButton("属性选项卡",false,false,false,null,null);

            CheckButton cb2 = new CheckButton("项目浏览器", false, true, false, null, null);

            CheckButton cb3 = new CheckButton("系统浏览器", false, false, false, null, null);

            CheckButton cb4 = new CheckButton("状态栏选项卡", false, true, false, null, null);

            CheckButton cb5 = new CheckButton("导航栏", false, false, false, null, null);

            CheckButton cb6 = new CheckButton("ViewCode", true, false, false, null, null);

            CheckButton cb7 = new CheckButton("隐藏全部", false, false, true, Properties.Resources.hide, null);

            CheckButton cb8 = new CheckButton("显示全部", false, false, true, Properties.Resources.show, null);

            cb1.Click += new Ribbon.RibbonHandler(() =>

            {

                MessageBox.Show(cb1.Text);

            });

            cb8.Click += new Ribbon.RibbonHandler(() =>

            {

                MessageBox.Show(cb8.Text);

            });

            pcds.AddItem(cb1);

            pcds.AddItem(cb2);

            pcds.AddItem(cb3);

            pcds.AddItem(cb4);

            pcds.AddItem(cb5);

            pcds.AddItem(cb6);

            pcds.AddItem(cb7);

            pcds.AddItem(cb8);

 

            ps.AddItem(pd);

            ps.AddItem(pd2);

            ps.AddItem(pd3);

            ps.AddItem(pd4);

 

 

            ps2.AddItem(pd5);

            ps2.AddItem(pd6);

            ps2.AddItem(pd7);

            ps2.AddItem(pd8);

 

            panel.AddItem(pb);

            panel.AddItem(pb2);

            panel.AddItem(pb4);

            panel.AddItem(pb3);

            panel.AddItem(smallStack);

 

 

            RibbonPanel panel2 = uiapp.CreateRibbonPanel("设计专区", "参数关联");

            panel2.AddItem(pb);

            panel2.AddItem(pb2);

            panel2.AddItem(pb3);

 

            RibbonPanel panel3 = uiapp.CreateRibbonPanel("设计专区", "选择测试");

            panel3.AddItem(pb);

            panel3.AddItem(pb2);

            panel3.AddItem(ps);

            panel3.AddItem(pb3);

            panel3.AddItem(ps2);

 

 

            RibbonPanel panel6 = uiapp.CreateRibbonPanel("设计专区", "项目测试");

            panel6.AddItem(pb2);

            panel6.AddItem(pb);

            panel6.AddItem(pb3);

            panel6.AddItem(ps);

            panel6.AddItem(pb4);

            panel6.AddItem(pd5);

            panel6.AddItem(pb3);

            panel6.AddItem(ps2);

            panel6.AddItem(pcds);

 

            RibbonPanel panel4 = uiapp.CreateRibbonPanel("附加模块", "项目描述");

            RibbonPanel panel5 = uiapp.CreateRibbonPanel("附加模块", "描述参数");

 

            panel4.AddItem(pb);

            panel4.AddItem(pb2);

            panel4.AddItem(pb3);

            panel5.AddItem(pb);

            panel5.AddItem(pb2);

            panel5.AddItem(pb3);

 

 

 

            RibbonPanel panel8= uiapp.CreateRibbonPanel("结构", "项目描述");

            RibbonPanel panel9 = uiapp.CreateRibbonPanel("结构", "描述参数");

 

            panel9.AddItem(pb3);

            panel9.AddItem(pb2);

            panel9.AddItem(pb);

            panel8.AddItem(pb);

            panel8.AddItem(pb2);

            panel8.AddItem(pb3);

 

            //创建应用菜单

            ApplicationMenu menu = uiapp.CreateApplicationMenu("你是我的风景");

 

            ApplicationMenuItem item_1 = new ApplicationMenuItem("新建规则", Properties.Resources.white, false, "思念是一种病,得治!");

            ApplicationMenuItem item_2 = new ApplicationMenuItem("打开规则", Properties.Resources.white, false, "如果云知道,许茹芸");

            ApplicationMenuItem item_3 = new ApplicationMenuItem("导出规则", Properties.Resources.white, false, "思念是一种病,得治!");

            ApplicationMenuItem item_4 = new ApplicationMenuItem("导入规则", Properties.Resources.white, true, "中华上下五千年,厉害");

 

            item_1.Click += new Ribbon.RibbonHandler(() =>

            {

                MessageBox.Show("新建规则");

            });

 

            MenuButton btn0 = new MenuButton("如果云知道", Properties.Resources.blue, false, null);

            MenuButton btn1 = new MenuButton("台北在下雨", Properties.Resources.blue, false, null);

            MenuButton btn2 = new MenuButton("故乡彩云映落日", Properties.Resources.blue, false, null);

            MenuButton btn3 = new MenuButton("他乡秋风寄相思", Properties.Resources.blue, false, null);

            MenuButton btn00 = new MenuButton("兵者,国之大事", Properties.Resources.blue, false, null);

            MenuButton btn11 = new MenuButton("死生之地,存亡之道", Properties.Resources.blue, false, null);

            MenuButton btn22 = new MenuButton("孔子曰:人之初,性本善", Properties.Resources.blue, false, null);

            MenuButton btn33 = new MenuButton("孟子曰:孔子说得对", Properties.Resources.blue, false, null);

            MenuButton btn44 = new MenuButton("老子曰:道可道,非常道", Properties.Resources.blue, false, null);

            btn0.Click += new Ribbon.RibbonHandler(() =>

            {

                MessageBox.Show(btn0.Text);

 

            });

            btn3.Click += new Ribbon.RibbonHandler(() =>

            {

                MessageBox.Show(btn3.Text);

 

 

            });

 

            item_4.AddItem(btn0);

            item_4.AddItem(btn1);

            item_4.AddItem(btn2);

            item_4.AddItem(btn3);

            item_4.AddItem(btn00);

            item_4.AddItem(btn11);

            item_4.AddItem(btn22);

            item_4.AddItem(btn33);

            item_4.AddItem(btn44);

 

 

            item_2.AddItem(btn0);

            item_2.AddItem(btn1);

            item_2.AddItem(btn2);

            item_2.AddItem(btn3);

          

 

 

            ApplicationMenuItem item_5 = new ApplicationMenuItem("没有规则", Properties.Resources.white, false, "思念是一种病,得治!");

            ApplicationMenuItem item_6 = new ApplicationMenuItem("已有规则", Properties.Resources.white, false, "思念是一种病,得治!");

            ApplicationMenuItem item_7 = new ApplicationMenuItem("放弃规则", Properties.Resources.white, false, "思念是一种病,得治!");

            ApplicationMenuItem item_8 = new ApplicationMenuItem("重启规则", Properties.Resources.white, false, "思念是一种病,得治!");

 

 

            item_5.Click += new Ribbon.RibbonHandler(() =>

            {

                MessageBox.Show("没有规则");

            });

 

            menu.AddMenuItems(item_1);

            menu.AddMenuItems(item_2);

            menu.AddMenuItems(item_3);

            menu.AddMenuItems(item_4);

            menu.AddMenuItems(item_5);

            menu.AddMenuItems(item_6);

            menu.AddMenuItems(item_7);

            menu.AddMenuItems(item_8);

 

            MenuText text_1 = new MenuText("一路过很多城", "思念是一种病,得治!1");

            MenuText text_2 = new MenuText("飘忽不定这也是一种麻痹", "思念是一种病,得治!2");

            MenuText text_3 = new MenuText("全部是你微笑的表情", "思念是一种病,得治!3");

            MenuText text_4 = new MenuText("一整片的森林", "思念是一种病,得治!4");

            MenuText text_5 = new MenuText("你在树荫里", "思念是一种病,得治!5");

            MenuText text_6 = new MenuText("复杂的生命因为有你", "思念是一种病,得治!6");

            MenuText text_7 = new MenuText("你是我的风景", "思念是一种病,得治!7");

            MenuText text_8 = new MenuText("云高风清不走下去", "思念是一种病,得治!8");

            MenuText text_9 = new MenuText("爱让悬崖变平地", "思念是一种病,得治!9");

            MenuText text_10 = new MenuText("看到了你莽莽撞撞靠近", "思念是一种病,得治!10");

            MenuText text_11 = new MenuText("细节都牵引我放下行李", "思念是一种病,得治!11");

            text_11.Click += new MenuText.RibbonHandler(() =>

            {

                MessageBox.Show(text_11.Text);

            });

            text_4.Click += new MenuText.RibbonHandler(() =>

            {

                MessageBox.Show(text_4.Text);

            });

            menu.AddTextItems(text_1);

            menu.AddTextItems(text_2);

            menu.AddTextItems(text_3);

            menu.AddTextItems(text_4);

            menu.AddTextItems(text_5);

            menu.AddTextItems(text_6);

            menu.AddTextItems(text_7);

            menu.AddTextItems(text_8);

            menu.AddTextItems(text_9);

            menu.AddTextItems(text_10);

            menu.AddTextItems(text_11);

 

            MenuText btnOne = new MenuText("退出", null);

            btnOne.Click += new MenuText.RibbonHandler(() =>

            {

                MessageBox.Show("退出此程序!");

 

            });

            MenuText btnTwo = new MenuText("设置", null);

            btnTwo.Click += new MenuText.RibbonHandler(() =>

            {

                MessageBox.Show("选项设置");

            });

            menu.bottomBigBtn = btnOne;

            menu.bottomSmallBtn = btnTwo;

            this.aeRibbonControl1.menu = menu;

            aeRibbonControl1.UpdateAndRefresh();

        }

        private void Form1_Load(object sender, EventArgs e)

        {

 

          

        }

        //禁用指定按钮

        private void button1_Click(object sender, EventArgs e)

        {

            aeRibbonControl1.tabList[0].listPanels[0].ribbons[0].IsEnabled = false;

 

            foreach (Ribbon rb in aeRibbonControl1.ribbons.list)

            {

                if (rb.GetType() == typeof(PullDownStack))

                {

                    foreach (PullDownButton a in (rb as PullDownStack).pushBtns)

                    {

                        if (a.Text == "分离中心文件")

                        {

                            a.IsEnabled = false;

                            break;

                        }

                    }

                }

            }

        }

        //激活指定按钮

        private void button2_Click(object sender, EventArgs e)

        {

            aeRibbonControl1.tabList[0].listPanels[0].ribbons[0].IsEnabled = true;

            foreach (Ribbon rb in aeRibbonControl1.ribbons.list)

            {

                if (rb.GetType() == typeof(PullDownStack))

                {

                    foreach (var a in (rb as PullDownStack).pushBtns)

                    {

                        if (a.Text == "分离中心文件")

                        {

                            a.IsEnabled = true;

                            break;

                        }

                    }

                }

            }

        }

 

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)

        {

 

        }

        //动态添加按钮

        private void button3_Click(object sender, EventArgs e)

        {

            PushButton pbs = new PushButton("动态设计", Properties.Resources.apply, true, "");

            pbs.Click += new Ribbon.RibbonHandler(() =>

            {

                MessageBox.Show("动态设计");

            });

            this.aeRibbonControl1.tabList[0].listPanels[0].AddItem(pbs);

 

            this.aeRibbonControl1.UpdateRibbonAddOrRemove();

        }

        //动态删除按钮

        private void button4_Click(object sender, EventArgs e)

        {

 

            this.aeRibbonControl1.tabList[0].listPanels[0].Remove("动态设计");

            this.aeRibbonControl1.UpdateRibbonAddOrRemove();

        }

        //动态文本菜单添加

        private void button5_Click(object sender, EventArgs e)

        {

            MenuText text = new MenuText("动态测试", "动态测试提示文本");

            this.aeRibbonControl1.menu.AddTextItems(text);

            //移除文本菜单项

            //this.aeRibbonControl1.menu.DeleteTextItems(text);

            //this.aeRibbonControl1.menu.DeleteTextItems("动态测试");

        }

 

 

 

    }

源码案例 连接 https://pan.baidu.com/s/1b_bmXY7x5zi16zaO9nmAsg


http://chatgpt.dhexx.cn/article/67y8MR1v.shtml

相关文章

Ribbon 界面介绍(1)

Ribbon 界面介绍(1) 转自:http://www.cnblogs.com/madhenry/archive/2011/12/02/Ribbons.html 小弟最近在学习VS2010中Ribbon界面的介绍,相比与C#的界面设计的强大,C的界面实在太难做了,但没办法&#xff…

Ribbon界面制作

Ribbon是类似于office2007样式的界面,它替代了传统的MFC程序里的菜单和工具栏 MFC默认生成的Ribbon功能少,需要我们自己添加一些控件和图片等元素使界面好看 看下面的一个界面,是VC2010示例里的 看到它与默认Ribbon样式的区别: 工具自己设计,MFC提供的Ribbon控件基本都…

Winform上实现Ribbon界面的雏形

winform里使用 再也无需采用第三方Ribbon库 自定义实现 效果不错 以后留着再升级完成 可以一起探讨探讨

[转]Ribbon界面介绍(1)

小弟最近在学习VS2010中Ribbon界面的介绍,相比与C#的界面设计的强大,C的界面实在太难做了,但没办法,项目需求,又不得不做,遍查网络上的资料,发现有用的基本上就是MSDN的帮助,又是全英…

C#中使用ribbon界面

 自Office2007开始,软件都逐渐地采用了Ribbon界面,一方面是时尚,如同许多厂商声称的那样,是 state of arts,另外,通过调查表明,Ribbon界面比传统的下拉栏菜单方式的工作…

MFC Ribbon界面设计

Ribbon是类似于office2007样式的界面,它替代了传统的MFC程序里的菜单和工具栏 MFC默认生成的Ribbon功能少,需要我们自己添加一些控件和图片等元素使界面好看 看下面的一个界面,是VC2010示例里的 看到它与默认Ribbon样式的区别: 工…

二次开发—Ribbon界面

二次开发—Ribbon界面 界面类型与设置 Ribbon界面与经典工具条的设置在(文件->实用工具-)用户默认设置), 还有一个常用的(菜单->首选项)。 相关文(startup文件夹中) 1..rtb文件, Ribbon文件主要文件,group其他的文件,一…

基于WinForm开发的Ribbon界面案例

使用 Winform开发插件或软件时,创建Ribbon界面是比较难的,大部分第三方Ribbon控件不是针对WPF开发的 就是不能免费授权,以下的AERibbonControl库 是自定义开发的 可以免费使用 可以满足大部分的需要,后续将持续扩展 添加更多灵活的…

MFC:Ribbon界面设计

本节教程初步讲讲怎样为Ribbon Bar添加Ribbon控件。 VS2010为Ribbon界面开发提供了Ribbon Designer,通过它我们可以为Ribbon Bar添加各种Ribbon控件、设置控件属性和进行界面布局。 Ribbon的界面元素可以分为类别、面板和基本控件(按钮、文本编辑框等&am…

C#之CAD二次开发: Ribbon界面初探

# 0. 引言 从CAD2009版本以后就开始使用上了Ribbon界面,更早的版本使用的界面相对较为简单,对比一下就知道啥是Ribbon界面了 这是CAD2006界面,经典的菜单工具栏,略low 这是CAD2018的Ribbon界面 Ofiice从07版本开始采用Ribbon界面…

基于Ribbon界面的MFC应用程序

1.打开vs2013,选择菜单项文件–新建–项目 2.在弹出的新建项目对话框中选择模板–Visual C-MFC,然后在中间选择MFC应用程序,最下方名称随便起,这里我设为RibbonExample,位置放在自己想要放的位置就好 3.点击确定&a…

【MFC】Ribbon界面开发(三)

01.目录 目录 01.目录02.本文内容03.完善Ribbon实例3.1 为Ribbon bar 添加更多的Ribbon控件3.2 为Ribbon控件添加消息处理函数 04.扩展内容(快速访问工具栏)05.总结 02.本文内容 上一节中讲了为Ribbon Bar添加控件的方法。本节将继续完善前面的实例&…

MFC入门之 Ribbon界面设计

Ribbon是类似于office2007样 式的界面,它替代了传统的MFC程序里的菜单和工具栏MFC默认生成的Ribbon功能少,需要我们自己添加一些控件和图片等元素使界面好看。看下面的一个界面,是示例里的 看到它与默认Ribbon样式的区别: 工具自己…

DevExpress 设计Ribbon界面

Ribbon上包含以下一些元素,如图所示: 元素对应API: Element Ribbon API Quick Access ToolbarRibbonControl.Toolbar RibbonQuickAccessToolbar.ItemLinksApplication ButtonRibbonControl.ShowApplicationButton RibbonControl.Application…

Ribbon界面1

收费工具,一百大洋。学生党勿扰。 1 概述 应客户要求,写了一个Ribbon风格的界面。 2 截图

Ribbon界面2

1 概述 Qt实现的Ribbon界面。 2 截图 office2003风格 office2003风格 office2005风格 office2005风格 office2013风格

Ribbon界面开发(C++)

一.简介 Ribbon:固定式工具栏界面,能够使用户更容易地使用 软件的各项常用功能,例如Word 2007中的保存,设置格式,插入图片等常用功能,都可以从Ribbon界面快速地访问到,从而提高用户的生产效率 二.项目创建 1&#x…

Ribbon界面介绍

http://hi.baidu.com/hoping/item/b257e10e99ed7312cd34ea1d Ribbons Ribbon是现代化的方式帮助用户高效和直接的查找、理解和使用工具命令——通过最少的点击,减少从“尝试-错误”(trainl-and-error)方式中恢复操作,寻找新的操作…

C#编程--ribbon界面介绍

1.梗概 最近在做一个编辑器,刚开始做两天,C#新手。觉得ribbon界面非常好看,不过网上资料非常之少。今天把这两天所学的做一下总结:一是希望能给后来者缩短入门时间。二是对这几天所做的内容进行汇总。(内容可能会有繁…

zz:保护眼睛的颜色和各种背景颜色设置方法

zz: http://tiaozhanshu.com/others/color-for-eye-protection/ 眼睛最近又疼了,无论远近都看不清楚。以前出现这种情况去医院查,医生还说我已经过了得近视的年纪,就算受到一般的刺激也不容易发生病变了。但是长期对着电脑最怕看见…