winform入门篇 第13章 菜单栏

devtools/2024/9/22 22:05:18/

菜单栏

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

重点是右键菜单的实现。

菜单栏 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.ppmy.cn/devtools/6734.html

相关文章

Docker容器逃逸-特权模式-危险挂载-Procfs

Docker容器逃逸-特权模式-危险挂载 Docker这个概念: Docker 容器与虚拟机类似,但二者在原理上不同,容器是将操作系统层虚拟化,虚拟机则是虚拟化硬件,因此容器更具有便携性、高效地利用服务器。 ‍ Docker会遇到的安…

LeetCode刷题总结 | 图论2—深度优先搜索广度优先搜索较为复杂应用

深搜广搜的标准模版在图论1已经整理过了,也整理了几个标准的套模板的题目,这一小节整理一下较为复杂的DFS&BFS应用类问题。 417 太平洋大西洋水流问题(medium) 有一个 m n 的矩形岛屿,与 太平洋 和 大西洋 相邻…

从OWASP API Security TOP 10谈API安全

1.前言 应用程序编程接口(API)是当今应用驱动世界创新的一个基本元素。从银行、零售、运输到物联网、 自动驾驶汽车、智慧城市,API 是现代移动、SaaS 和 web 应用程序的重要组成部分,可以在面向客 户、面向合作伙伴和内部的应用程…

2024-4-17-ARM作业

温湿度数据采集应用: si7006.h: #ifndef __SI7006_H__ #define __SI7006_H__#include"i2c.h" void delay(int ms); void si7006_init(); short si7006_read_tem(); unsigned short si7006_read_hum();#endif i2c.h: #ifndef __I2C_H__ #define __I2C_…

FY-SA-20237·8-MunchingBugs

Translated from the Scientific American, July/August 2023 issue. Munching Bugs “Munching bugs” 是指吃食昆虫。在这个词组中,“munching” 意味着大口咀嚼或吃东西,而 “bugs” 是对昆虫的俚语称呼。因此,“munching bugs” 指的是吃…

LLaMA3-70B: Meta AI 的最新自然语言处理模型

LLaMA-70B: Meta AI 的最新自然语言处理模型 近期,Meta AI 发布了其最新的自然语言处理模型 LLaMA-70B,这是一个基于 transformer 结构的语言模型,具有70亿个参数。LLaMA-70B 的发布标志着 Meta AI 在自然语言处理领域的又一重大突…

第⑭讲:Ceph集群管理:守护进程管理、日志管理和端口号配置

文章目录 1.Ceph各组件守护进程的管理方式2.守护进程管理操作2.1.Ceph所有组件的守护进程列表2.2.重启当前主机中所有的Ceph组件2.3.重启主机中所有的Monitor组件2.4.重启指定主机的Monitor组件2.5.重启指定的OSD组件 3.Ceph的日志管理4.Ceph集群各组件的守护进程5.Ceph集群各组…

【氮化镓】微波脉冲对GaN HEMT失效的影响

本文是一篇关于高功率微波脉冲作用下GaN HEMT(高电子迁移率晶体管)热电多物理场耦合失效的实验研究。文章由Xiangdong Li等人撰写,发表在2023年11月的《IEEE Transactions on Electron Devices》上。文章通过实验研究了在高功率微波脉冲应力下…