c#菜单动态合并的实现方法
说明
在程序中经常使用弹出菜单,并且一个窗体中可以存在多个弹出菜单。开发过MDI窗体的读者可能都知道,当MDI子窗体最大化时,子窗体和主窗体的菜单能够自动的合并。这是如何实现的呢?本例实现了将两个弹出菜单动态的合并成一个弹出菜单的功能。实例效果如图1.2所示。
要点
C# 2.0中已经将弹出菜单封装为Context MenuStrip控件,利用该控件中的Items对象可以操作菜单中的菜单项。该对象是ToolStripMenuItem类型,使用Items.AddRange( )方法可以向弹出菜单中添加菜单项,该方法原型如下。
public void AddRange ( ToolStripItem[] toolStripItems )
参数说明如下。
toolStripItems:控件的数组。
过程
(1)创建一个项目,将其命名为Ex01_02,默认窗体为Form1。
(2)从工具箱中向Form1窗体添加一个MenuStrip控件用来设计菜单;同时向窗体添加ContextMenuStrip控件用来设计右键菜单;选中MenuStrip控件创建一个“打开子窗体”主菜单,然后选中ContextMenuStrip控件为其添加子项。
(3)为程序添加一个窗体,默认名为Form2,同时向窗体添加ContextMenuStrip控件用来设计右键菜单,然后选中ContextMenuStrip控件为其添加子项。
private void 打开自窗体ToolStripMenuItem_Click(object sender, EventArgs e) { Form2 f = new Form2(); f.MdiParent = this; f.Show();//显示子窗体 f.Resize += new EventHandler(f_Resize); } void f_Resize(object sender, EventArgs e) { Form2 f = (Form2)sender; ToolStripMenuItem item = new ToolStripMenuItem(); for (int i = 0; i < f.contextMenuStrip2.Items.Count; )//合并菜单 { item.DropDownItems.Add(f.contextMenuStrip2.Items[i]); } this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { item}); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
c#中合并excel表格的方法示例
有多个结构一样的Excel,带复杂表头需要合并为一个,且去掉多余的表头数据,可以用COM组件来读取每个Excel表格的Range来合并到一个新的表格中.样例如图 有很多相同格式的表格,合并代码如下: using System; using System.Collections.Generic; using System.Text; using System.Reflection; using Excel = Microsoft.Office.Interop.Excel; namespace Co
-
C#实现合并及拆分PDF文件的方法
有时我们可能会遇到下图这样一种情况 - 我们需要的资料或教程被分成了几部分存放在多个PDF文件中,不管是阅读还是保存都不是很方便,这时我们肯定想要把这些PDF文件合并为一个PDF文件.相对应的,有时候我们也需要拆分一个大的PDF文件,来从中获取我们需要的那一部分资料.这篇文章主要分享如何使用C#来将多个PDF文件合并为一个PDF文件以及将一个PDF文件拆分为多个PDF文件. 合并PDF文件 合并PDF文件的代码很简单,主要分为三步,首先获取需要合并的PDF文件,然后调用public static
-
c#中合并DataTable重复行的值
复制代码 代码如下: //DataTable数据添加 Hashtable ht = new Hashtable(); DataTable dt = new DataTable(); DataColumn dc = new DataColumn("id"); dt.Columns.Add(dc); dc = new DataColumn("name");
-
C#中DataTable排序、检索、合并等操作实例
一.排序1.获取DataTable的默认视图2.对视图设置排序表达式3.用排序后的视图导出的新DataTable替换就DataTable(Asc升序可省略,多列排序用","隔开)1).重生法 复制代码 代码如下: dstaset.Tables.Add(dt)dataset.Tables(0).DefaultView.Sort = "id desc" 2).直接法 复制代码 代码如下: dv = New DataView(dt)dv.Sort = "id d
-
C#实现简单合并word文档的方法
本文实例讲述了C#实现简单合并word文档的方法.分享给大家供大家参考.具体如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Reflection; namespace Demo { p
-
C#文件合并的方法
本文实例讲述了C#文件合并的方法.分享给大家供大家参考.具体实现方法如下: using System; using System.IO; string filetomerge=@"C:\temp\data.bin"; string targetpath=@"D:\store"; string strFileName = filetomerge.Substring(filetomerge.LastIndexOf(Path.DirectorySeparatorChar)
-
C#实现合并多个word文档的方法
本文实例讲述了C#实现合并多个word文档的方法,是非常具有实用价值的技巧.分享给大家供大家参考. 具体实现方法如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; using Microsoft.Office.Interop.Word; using System.Reflection; using System.IO; using System.Diagnostics;
-
C#自适应合并文件的方法
本文实例讲述了C#自适应合并文件的方法.分享给大家供大家参考.具体实现方法如下: using System; using System.IO; namespace MergeFile { class Program { public static void Main(string[] args) { int count=1; string sourcepath=@"D:\SplitFile"; string filetomerge=@"C:\编程的奥秘.pdf";
-
c#菜单动态合并的实现方法
说明 在程序中经常使用弹出菜单,并且一个窗体中可以存在多个弹出菜单.开发过MDI窗体的读者可能都知道,当MDI子窗体最大化时,子窗体和主窗体的菜单能够自动的合并.这是如何实现的呢?本例实现了将两个弹出菜单动态的合并成一个弹出菜单的功能.实例效果如图1.2所示. 要点 C# 2.0中已经将弹出菜单封装为Context MenuStrip控件,利用该控件中的Items对象可以操作菜单中的菜单项.该对象是ToolStripMenuItem类型,使用Items.AddRange( )方法可以向弹出菜单中
-
jquery 动态合并单元格的实现方法
如下所示: ////在table的第二行的位置添加一行: var tbl_elm = $("#dgList"); $('<tr><td colspan=\'2\'>xxxxxx</td></tr>').insertBefore($("TR", tbl_elm).eq(1)) ////table中指定行第N列合并单元格(合并后会多出一列,删除N+1单元格即可) var tds = $("#dgList .Tab
-
ThinkPHP实现动态包含文件的方法
本文实例讲述了ThinkPHP实现动态包含文件的方法.分享给大家供大家参考.具体分析如下: 问题描述:在做项目的时候遇到问题,也是很常见的问题,一般主页包含头部和脚步,为了方便管理,这些都需要使用包含文件来实现,ThinkPHP提供了包含文件的方法,以上是最简单的包含的操作的方式,但是在运行的过程中我发现,在请求的时候只是请求的是模板文件,也就是所谓的静态包含,但是如果遇到菜单是动态生成的就很难办了. 在网上找到一个解决办法:使用Widget 1.我们在页面中实现一个分类显示的Widget,首先
-
jQuery autoComplete插件两种使用方式及动态改变参数值的方法详解
本文实例讲述了jQuery autoComplete插件两种使用方式及动态改变参数值的方法.分享给大家供大家参考,具体如下: 一.一次加载.多次使用: 前端JS代码: /*客户名称自动匹配*/ function customerAutoComplete(){ $.ajax({ type:"GET", url:encodeURI("/approvalajax/salesOrderApproval_findCustomerList"), dataType:"j
-
使用layui实现的左侧菜单栏以及动态操作tab项方法
首先说一下左侧菜单栏 这是一个最基本的左侧菜单栏,实现的过程很简单,官方的说明文档就有,但是我在导入layer.js之后,直接复制这段官方代码到我的编辑器上时,发现页面是这样的: 发现,绑定属性的菜单并没有下拉选项,这个问题在我导入layer.all.js之后解决了,而且发现如果是在页面的最上方导入的话也没有下拉选项,只有在html代码下面导入,才可以显示 ,不知道是什么原因. 下面说重点,动态操作tab项 页面截图: tab项右键菜单: 这里右键菜单的样式并没有做太多的美化. html代码:(
-
layui-tree实现Ajax异步请求后动态添加节点的方法
最近在弄一个产品分类管理,是一个树形菜单的形式,用的是layui-tree ,由于它并没有动态添加节点,所以只能自己刚了. 大概效果如图 体的实现是当我鼠标移入"长袖"这个分类时,出现三个icon (如图),按"增加"按钮,会发送ajax异步请求到后台,在数据库库中增加以"长袖"为父类id 的一个子分类,成功后返回到前台,然后相应的节点下动态添加子节点,主要是通过append 来增加html元素 <!DOCTYPE html> <
-
Android 虚拟按键适配动态调整布局的方法
最近项目中遇到了华为虚拟按键适配的问题,主页是个RecylerView(如下图),如果不做适配,在界面初始化完毕后,虚拟按键会遮挡页面或者空出一些留白部分,针对这个问题上网找了些资料,总结了以下方法 首页下部分是RecylerView 首页下半部分是个RecylerView(针对适配) 监听虚拟键的切换 注册系统广播 getContentResolver().registerContentObserver(Settings.System.getUriFor("navigationbar_is_m
-
antd Select下拉菜单动态添加option里的内容操作
antd Select下拉菜单动态添加option里的内容,通过form表单绑定select选中的值 提供一个公共的方法,每次只需去调用这个方法就行了 //这里是示例数据格式 let giftScope =[ { code:200, id:1, name:"张三" }, { code:300, id:2, name:"李四" }, { code:400, id:3, name:"王五" }, { code:500, id:4, name:&quo
-
element 动态合并表格的步骤
前言 element 官方的例子太简单了,不满足实际的需求 数据肯定是动态的,合并的行数,列数都是动态的,该如何知道每一行的合并数呢 需求 动态合并表格,数据来源于数据库 正文 一开始,我的数据源是单独的数组,表格数据合并了几个数据, 我根据各个数组的长度,来决定每一行的合并数 结果:有些数据是正常的,但有些又合并出错了.计算的方式不对 尝试二 dataPretreatment() 用这个方法 计算出每一行的行数 dataPretreatment(){ //表格数据列合并预处理,生成一个与行数相
-
vue+el-element中根据文件名动态创建dialog的方法实践
目录 背景 实现 1.封装的/utils/dialogControl.js 2.dialog文件定义 3.使用 背景 在项目中使用对话框的通常做法是把对话框封装成组件,在使用的地方引入,然后添加到template,使用visible.sync控制对话框的显示/隐藏,监听confirm事件处理用户点击确定.如下: <confirm-dialog v-if="confirmDialogVisible" :title="$t(`mineData.tips.deleteDat
随机推荐
- 手把手教你自己写一个js表单验证框架的方法
- Linux下用netstat查看网络状态、端口状态
- java web如何解决瞬间高并发
- oracle 12c安装教程(window)
- Vue报错:Uncaught TypeError: Cannot assign to read only property’exports‘ of object’#<Object>‘的解决方法
- php实现搜索一维数组元素并删除二维数组对应元素的方法
- rustysun同学ASP代码书写规范
- 仿3721首页模块拖曳移动效果js代码[可拖曳层移动层]
- 使用字符串函数输出整数化的PHP版本号
- Windows server 2008 r2上安装MySQL5.7.10步骤
- JAVASCRIPT style 中visibility和display之间的区别
- 详解SQL死锁检测的方法
- jQuery利用sort对DOM元素进行排序操作
- 使用vue的v-for生成table并给table加上序号的实例代码
- IE:快速到达根目录
- C#实现Excel导入sqlite的方法
- PHP实现的限制IP投票程序IP来源分析
- Android 两个Fragment之间传递数据实例详解
- Python中几个比较常见的名词解释
- Java编程使用UDP建立群聊系统代码实例