winform入门篇 第13章 菜单栏

菜单栏

本章内容
菜单栏
工具栏
右键菜单

重点是右键菜单的实现。

菜单栏 MenuStrip,支持可视化编辑
添加 MenuStrip
添加菜单、菜单项、分隔线给菜单项设置属性
—Name 字段名,Text 文本显示,Image:图标
给菜单项添加事件处理(双击即可)

1.添加菜单栏

在这里插入图片描述

2.添加菜单项

直接输入文字即可
在这里插入图片描述

后边还能继续添加菜单
在这里插入图片描述

运行项目

在这里插入图片描述

3.添加属性

选择对应的菜单项,右键选择属性
在这里插入图片描述
在这里插入图片描述

Image 属性,表示前面显示的图标

在这里插入图片描述

4.添加事件

直接双击 菜单键 即可创建事件方法
在这里插入图片描述

默认添加Click 事件处理

在这里插入图片描述

5.添加图标

首先添加图片资源到Resource.resx中
在这里插入图片描述
在这里插入图片描述

右键选择,需要更换图标的菜单栏,选择Image 属性,添加图片

在这里插入图片描述

运行项目

在这里插入图片描述

此时,图标就已经显示在菜单栏前面

工具栏

工具栏 ToolStrip,主要用于显示工具按钮演示:。。

1.添加工具栏

在这里插入图片描述

2.添加控件

在这里插入图片描述

3.修改图标

添加资源文件到Resource.resx 中

在这里插入图片描述

右键选择属性,修改Image 属性

在这里插入图片描述

运行结果

在这里插入图片描述

要点与细节

1 工具栏的按钮代表一些常见的功能工具按钮和菜单项是对应的,应选择同一个回调

双击工具栏按钮,即可为其创建事件处理(建议先为控件创建一个规范的名字)
在这里插入图片描述

可以通过事件下拉列表,选择事件方法,为两个控件,同时绑定同一个方法处理

此处可以给菜单栏也绑定该方法
在这里插入图片描述

*右键菜单

右键菜单,ContextMenuStrip,即上下文菜单

例如,一个ListBox上右键点击时,显示上下文菜单

1 添加 ContextMenuStrip

在设计器里直接可视化编辑即可
在这里插入图片描述
编辑方式,和普通菜单栏是同样的

添加菜单项
在这里插入图片描述
此时运行,右键菜单并不会直接显示

给每个菜单项,修改合适的Name(规范命名)
在这里插入图片描述
编辑为 menuItem_Edit
删除为 menuItem_Del

2 给ListBox添加鼠标事件 MouseUp

void listBox1 MouseUp(sender, e), 或者void listBox1 MouseDown(sender, e)
在这里插入图片描述
在这里插入图片描述

3 弹出上下文菜单

contextMenuStrip1.Show(listBox1,e.Location);
在这里插入图片描述

运行结果,点击右键

在这里插入图片描述

4 区分上下文

作不同的处理
若点中了一项,则允许某些菜单(修改/删除)
若点中任何项,则禁用某些菜单(修改/删除)

需要达到效果,根据他所点击的内容,做出相应的处理(空白处点击不应该出现该菜单,应该在内容上点击才出现)

调用Listbox 的IndexFromPoint 获取指定坐标处的索引(为点中 返回-1)

在这里插入图片描述

运行结果

选中
在这里插入图片描述

未选中
在这里插入图片描述
也可以使用Visible = true/false 设置该右键菜单,显示与否

要点与细节

1根据鼠标点击的位置,判断点中了哪一项
int index = listBox1.IndexFromPoint(e.Location);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/823433.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OSPF的P2P和Broadcast

OSPF为什么会有P2P和BROADCAST两种类型 OSPF(开放最短路径优先)协议中存在P2P(点对点)和BROADCAST(广播多路访问)两种网络类型,主要是为了适应不同类型的网络环境和需求。具体分析如下&#xf…

Jmeter 压测-Jprofiler定位接口相应时间长

1、环境准备 执行压测脚本,分析该接口tps很低,响应时间很长 高频接口在100ms以内,普通接口在200ms以内 2、JProfiler分析响应时间长的方法 ①JProfiler录制数据 压测脚本,执行1-3分钟即可 ②分析接口相应时间长的方法 通过Me…

Louvain算法简介

1. 背景 Louvain算法是一种基于图数据的社区发现算法(community detection),算法的优化目标为最大化整个数据的模块度,模块度的计算如下: 其中m为图中边的总数量, 表示所有指向节点 i 的连边权重之和。 表示节点 i,j 之…

14_SpringMVC

文章目录 MVCSpringMVC与JavaEE对比SpringMVCSpringMVC的核心流程SpringMVC入门案例RequestMapping注解的使用Handler方法的返回值Handler方法的形参keyvalue形式的请求参数Json请求参数 RESTful风格接口静态资源处理FilterHandlerInterceptor异常处理SpringMVC核心流程流程图 …

sudo apt install ros-humble-gazebo-*显示网络不可达 Ubuntu20.04使用清华镜像本地安装/更新ros2

问题 sudo apt install ros-humble-gazebo-*显示网络不可达,这是因为sources.list中的镜像源有问题,换成清华源可以解决问题 解决 1 设置Ubuntu镜像源为清华镜像源 1.1 备份source.list文件 sudo cp /etc/apt/sources.list /etc/apt/sources.list.ba…

线圈、寄存器、存储区代号、功能码 案例说明

线圈和寄存器 表示数据类型 线圈:表示Boolean数据类型 寄存器:表示非Boolean数据类型,用来暂时存放参与运算的数据和运算结果,具有接收数据、存放数据和输出数据的功能。 ModbusRTU 读输出线圈 存储区代号 0区 功能码 0x01 读输入…

金牌客服的宝藏App——客服宝快捷回复软件

在客户服务领域,时间就是金钱,效率就是生命。作为一名荣获“金牌客服”称号的小编,我深知快捷回复工具对于提升工作效率和客户满意度的重要性。今天,我要向大家推荐一款在客服界小有名气的神器——客服宝聊天助手。这款快捷回复软…

2024.4.17

poll客户端 #include <myhead.h> #define IP "192.168.38.128" #define PORT 8889 int main(int argc, const char *argv[]) {//创建套接字int cfd socket(AF_INET,SOCK_STREAM,0);if(cfd -1){perror("cfd");return -1;}//绑定//......//连接服务…

C++动态内存管理 解剖new/delete详细讲解(operator new,operator delete)

讨厌抄我作业和不让我抄作业的人 讨厌插队和不让我插队的人 讨厌用我东西和不让我用东西的人 讨厌借我钱和不借给我钱的人 讨厌开车加塞和不让我加塞的人 讨厌内卷和打扰我内卷的人 一、C中动态内存管理 1.new和delete操作内置类型 2.new和delete操作自定义类型 二、operat…

重生奇迹mu恶魔来袭副本

在游戏重生奇迹mu中&#xff0c;恶魔来袭副本是玩家能够组队通过的副本。但是因为手游组队的不方便性&#xff0c;部分玩家对其还是非常苦手。而今天&#xff0c;我们就给大家讲解一下这个游戏的双人通关攻略。 1、挂机找怪手动输出 (1)对于普通剧情副本而言&#xff0c;挂机…

python爬虫原理和编程实战:爬取CSDN博主的账号信息

&#x1f9d1; 作者简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向的学习指导…

黑马点评(四) -- 分布式锁

1 . 分布式锁基本原理和实现方式对比 分布式锁&#xff1a;满足分布式系统或集群模式下多进程可见并且互斥的锁。 分布式锁的核心思想就是让大家都使用同一把锁&#xff0c;只要大家使用的是同一把锁&#xff0c;那么我们就能锁住线程&#xff0c;不让线程进行&#xff0c;让…

4.1 返回JSON数据

1. 默认实现方式 JSON是目前主流的前后端数据传输方式&#xff0c;Spring MVC中使用消息转换器HttpMessageConverter对JSON的转换提供了很好的支持&#xff0c;在Spring Boot中更进一步&#xff0c;对相关配置做了更进一步的简化。 默认情况下&#xff0c;当开发者新创建一个S…

24.4.17 驱动开发定时器作业,消抖

定时器消抖工作原理 在按键按下之后&#xff0c;进入中断处理函数&#xff0c;在中断处理函数中&#xff0c;定时时间10ms当定时时间到&#xff0c;执行定时器处理函数&#xff0c;在定时器处理函数中&#xff0c;读取管脚的电平状态如果读到的是低电平&#xff0c;表示按键按下…

刷题日记——质因数的个数

题目 分析&#xff08;从质数的判断角度出发&#xff09;&#xff08;递归&#xff09; 判断n是否是质数需要&#xff1a; 遍历&#xff0c;i从2开始到sqrt(n)&#xff0c;每次判断n是否能整除i&#xff0c;若能则不是质数&#xff0c;若不能则是 思路&#xff1a; 先判断n…

【MATLAB源码-第26期】基于matlab的FBMC/OQAM的误码率仿真。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 FBMC&#xff08;Filter Bank Multicarrier&#xff09;是一种多载波调制技术&#xff0c;它采用滤波器组来处理频域内的子载波&#xff0c;以在有限带宽内实现高效的数据传输。OQAM&#xff08;Offset Quadrature Amplitude…

数据结构初阶:二叉树(一)

树概念及结构 树的概念 树是一种 非线性 的数据结构&#xff0c;它是由 n &#xff08; n>0 &#xff09;个有限结点组成一个具有层次关系的集合。 把它叫做树是因 为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的 。 有一个特殊的结点&a…

微前端 qiankun 框架接入问题记录

背景&#xff1a;需要搭建一个平台&#xff0c;这个平台的主要功能是集成各个子系统&#xff0c;方面对系统之间的统一管理。在搭建这样一个平台时&#xff0c;前端考虑使用微前端架构方式实现&#xff0c;使用的框架是 qiankun&#xff0c;本文主要记录在 qiankun 框架使用过程…

【Leetcode每日一题】 分治 - 颜色分类(难度⭐⭐)(57)

1. 题目解析 题目链接&#xff1a;75. 颜色分类 这个问题的理解其实相当简单&#xff0c;只需看一下示例&#xff0c;基本就能明白其含义了。 2.算法原理 算法思路解析 本算法采用三指针法&#xff0c;将数组划分为三个区域&#xff0c;分别用于存放值为0、1和2的元素。通过…

Ubuntu修改DNS

【永久修改DNS】 临时修改DNS的方法是在 /etc/resolv.conf 添加&#xff1a;nameserver 8.8.8.8 nameserver 8.8.8.8 注意到/etc/resolv.conf最上面有这么一行&#xff1a; DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN 说明重启之后这个文件会被自动…