如何在MDI程序中把子窗体菜单合并到主窗体上

【白话理解deepwalk】 转载https://zhuanlan.zhihu.com/p/58105731 deepwalk用于将graph向量化 以便后续的深度学习 在读paper时 我读了很多遍都未能领悟精髓 如果你现在与我当初疑惑相同 请看下文 此方法借鉴NLP里的思想 将图中所有vertex标记 random walk开始 随机取起始点 规定路径长度 随机漫游graph 如 从3开始 规定路径长度为3 得到一条random walk路径 开始借鉴NLP思想,这条路径上临近点与点之间必然联系密切 有共同特. 阅读详情

       这里只讲在MDI中,子菜单与父菜单合并的简单方法。

 

首先在MDI的主窗体中:

1.  在主窗体构造函数中,添加如下代码,注意要在InitializeComponent调用之后,如:

            //Add File Menu

            MenuItem miFile = mnuMain.MenuItems.Add("&File");

            miFile.MergeOrder=1;

            miFile.MergeType = MenuMerge.MergeItems;

 

            MenuItem miAddDoc = new MenuItem( "&Add Document",

                new EventHandler(this.FileAdd_Clicked),

                Shortcut.CtrlA );

            miAddDoc.MergeOrder=100;

 

            MenuItem miExit = new MenuItem( "E&xit",

                new EventHandler(this.FileExit_Clicked),

                Shortcut.CtrlX );

            miExit.MergeOrder=110;

 

            miFile.MenuItems.Add(miAddDoc);

            miFile.MenuItems.Add("-");     // Give a seperator

            miFile.MenuItems.Add(miExit);

 

            //Add Window Menu

            MenuItem miWindow = mnuMain.MenuItems.Add("&Window");

            miWindow.MergeOrder = 10;

            miWindow.MenuItems.Add( "&Cascade",

                new EventHandler(this.WindowCascade_Clicked));

            miWindow.MenuItems.Add( "Tile &Horizontal",

                new EventHandler(this.WindowTileH_Clicked));

            miWindow.MenuItems.Add( "Tile &Vertical",

                new EventHandler(this.WindowTileV_Clicked));

            miWindow.MdiList = true ; //Adds the MDI Window List to the bottom of the menu

 

2.  然后为相应的Menu_Click事件定义函数,如:

        #region MENU_CLICK_MESSAGE_HANDLE

        //File->Add Menu item handler

        protected void FileAdd_Clicked(object sender, System.EventArgs e)

        {

            AddMDIChild() ; //Create new MDI child window

        }

 

        //File->Exit Menu item handler

        protected void FileExit_Clicked(object sender, System.EventArgs e)

        {

            this.Close();

        }

 

        //Window->Cascade Menu item handler

        protected void WindowCascade_Clicked(object sender, System.EventArgs e)

        {

            this.LayoutMdi(MdiLayout.Cascade);

        }

 

        //Window->Tile Horizontally Menu item handler

        protected void WindowTileH_Clicked(object sender, System.EventArgs e)

C# WinForm MDI窗体菜单动态合并实现详解 为了便于后续查找与管理,每个动态生成的都应赋予唯一的Name属性。推荐采用“功能_窗体类型_行为”的命名规范,例如表示“文档编辑器中的保存操作”。var exportItem = new ToolStripMenuItem("导出PDF")Tag = activeChild // 关联来源窗体此命名方式具有以下优势:可读性强:开发者可通过名称快速识别菜单项来源;便于调试:在 Visual Studio 的 UI 检查器中易于定位;支持批量操作。 阅读详情

相关推荐

C# WinForms MDI系统框架源码解析:从子窗体管理到菜单联动

多文档界面(MDI)是WinForms桌面应用组织多个子窗口的标准方案,其核心在于主窗体内部的MdiClient容器托管所有子窗体,并通过菜单合并、激活事件等机制实现界面联动。理解窗口层级与生命周期管理,是规避菜单错乱、工具栏状态失控、关闭误退等高频问题的前提。基于此,一套轻量级MDI系统框架将主窗体配置、子窗体基类、窗体管理器封装为固定套路,提供单实例打开、去重、布局调用、全局快捷键路由等能力,适用于ERP、进销存等后台管理系统的多窗口改造。完整拆解该框架源码,涵盖MdiClient背景设置、菜单合并避坑

weixin_29255731的博客 189

C#-【控件篇】Winform中使用MDI窗体(中级)

可以通过此示例,学习MDI窗体的使用,以及各种窗体布置,包括: 1.垂直分布;2.水平分布;3.层叠分布

c# 自定义winform系统菜单

C#+MFC添加修改windows窗口系统菜单(自定义系统菜单),自己有修改菜单的需求,但是作为一个刚接触编程不久的小白在修改系统菜单这方面很吃力,最终是做了增加删除的效果但是还有子菜单和图标的问题没有解决

信息安全与技术——(十一)恶意代码检测与防范技术

恶意代码(Malicious Code )或恶意软件(Malware )主要是指以危害信息的安全等不良意图为目的的程序,它们一般潜伏在受害计算机系统中实施破坏或窃取信息。

m0_63853448的博客 5991

标签传播算法LPA:半监督学习解决标注数据不足的完整实战指南

在机器学习实际工程中,标注数据稀缺往往是制约模型性能的核心瓶颈。半监督学习提供了一条利用海量未标注数据来增强模型泛化能力的有效路径,其中标签传播算法(Label Propagation Algorithm, LPA)因其直观的图结构和优雅的数学原理而备受关注。LPA通过将样本映射为图中的节点,以相似度作为边权重,让已知标签沿着图结构不断扩散,从而实现对未知样本的预测。其背后基于聚类假设与流形假设,能在低标注率场景下显著缓解过拟合问题,提升分类准确率。该技术在文本分类、金融风控、图像识别等存在大量无标注数据的

weixin_29056781的博客 239

Mac上安装Label Studio

以上步骤详细说明了如何在Mac上通过Anaconda安装Label Studio。记得根据你的具体需求选择是否创建新的环境,并使用conda或pip进行安装。安装完成后,务必验证Label Studio是否成功运行。

g2526的博客 1958

LabVIEW+数据库应用系列保姆级教程,第一篇数据库连接

目录LabVIEW连接数据库的方法连接MySQL连接Oracle,SQL Server,Access等 LabVIEW连接数据库的方法 1、创建udl(Universal Data Link)是通用数据连接文件。界面操作,简单快捷。 2、编写连接字符串。需要熟悉连接字符串的结构,容易出错。 3、其他… 本教程教你使用第1种方法,也是最简单、最常用的方法。 连接MySQL 1、在MySQL Installer内安装MySQL Connector/ODBC,建议安装32位(X86),如下图: 2、创建ODBC

wwplh5520370的博客 1万+

ANSYS MAXWELL内置式永磁同步电机(IPMSM)转矩最大时输入电流相位的确定

1.在转子转速为零时看一个周期内的转矩变化

qq_41752507的博客 6516

别再用LabelImg了!我手搓了一个C#“一站式”YOLO工具箱,标注训练推理全搞定

这个工具箱目前已经在两个小型产线项目中试用,反馈非常好。效率提升:原本需要 2 天完成的“数据准备 - 训练 - 验证”循环,现在缩短到了 2 小时。门槛降低:产线技术员经过 10 分钟培训,就能独立完成新产品的模型迭代。当然,它还有改进空间未来计划集成主动学习功能:自动筛选出置信度低的图片,推荐优先标注。支持多模型管理:方便在不同产品型号间快速切换。增加PLC 通信模块:直接在推理界面配置 IO 信号,实现真正的软硬联动。最后想说工具的本质是服务于人。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 441

基于深度学习的活体人脸检测系统:YOLOv5、YOLOv6、YOLOv7、YOLOv8实现与UI界面设计

本博客详细介绍了如何基于YOLOv5、YOLOv6、YOLOv7、YOLOv8模型实现一个完整的活体人脸检测系统。系统包括数据集准备、模型训练、UI界面设计以及实时检测功能的实现。通过YOLO系列模型的应用,我们能够高效、准确地进行人脸检测和活体验证。未来,随着YOLOv9和其他新一代目标检测模型的出现,我们可以进一步提高检测精度和速度。此外,集成更多的传感器数据(如深度传感器、红外线传感器)可以使活体检测系统更加安全和稳定。

YOLO 540

基于STM32L4XX 、HAL库的ATD5984步进电机驱动器驱动程序应用设计

一、简介: ATD5984是一款内部集成了译码器的微特步进电机 驱动器,能使双极步进电机以全、半、1/4、/1/8、1/16 和1/32步进模式工作。步进模式由逻辑输入管脚MSx选 择。其输出驱动能力达到28V±1.6A。 译码器是ATD5984易于使用的关键,通过STEP管脚 输入一个脉冲就可以使电机完成一次步进,省去了相序 表,高频控制线及复杂的编程接口,使其更适于没有复 杂的微处理器或微处理器负担过重的场合。 在步进操作期间,ATD5984的内部电路可以自动

PP_Cottage的博客 406

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

上一篇: 如何使自己的程序只运行一次
下一篇: 如何在子线程中操作窗体上的控件
Knight94
博客等级 码龄25年 1013粉丝 87原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值