In this article let us see how to create Context Menu in Windows Forms application using C#

Introduction

In this article we will see how to create Context Menu or Popup Menu or Shortcut menu in Windows Forms application with ContextMenuStrip control using C#

Context Menu

Context menu is group of commands or menu items that can be accessed by Right click on the control surface. It usually contains some frequently used commands for example Cut, Copy and Paste in a text editor. In Windows Forms, context menu is created using ContextMenuStrip control and its command or menu items are ToolStripMenuItem objects.

Creating Context Menu in design view

  • Create a new Windows Forms application and drag a ContextMenuStrip control on the Form
  • Type name of menu item in the ComboBox labeled with “Type Here” and press Enter. For example, type “Exit” and press Enter
  • Double click on the menu item (Exit) to write code for its Click event. Write following in its Click event
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}
  • Set ContextMenuStrip property of the Form to contextMenuStrip1

In this article let us see how to create Context Menu in Windows Forms application using C#

Introduction

In this article we will see how to create Context Menu or Popup Menu or Shortcut menu in Windows Forms application with ContextMenuStrip control using C#

Context Menu

Context menu is group of commands or menu items that can be accessed by Right click on the control surface. It usually contains some frequently used commands for example Cut, Copy and Paste in a text editor. In Windows Forms, context menu is created using ContextMenuStrip control and its command or menu items are ToolStripMenuItem objects.

Creating Context Menu in design view

  • Create a new Windows Forms application and drag a ContextMenuStrip control on the Form
  • Type name of menu item in the ComboBox labeled with “Type Here” and press Enter. For example, type “Exit” and press Enter
  • Double click on the menu item (Exit) to write code for its Click event. Write following in its Click event
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}
  • Set ContextMenuStrip property of the Form to contextMenuStrip1

Creating Context Menu in code behind

  • Create a new Windows Forms application
  • Write code for CreateContextMenu() method and call it after InitializeComponet() method
public Form1()
{
InitializeComponent();
CreateContextMenu();
} private void CreateContextMenu()
{
ContextMenuStrip menuStrip = new ContextMenuStrip();
ToolStripMenuItem menuItem = new ToolStripMenuItem("Exit");
menuItem.Click += new EventHandler(menuItem_Click);
menuItem.Name = "Exit";
menuStrip.Items.Add(menuItem);
this.ContextMenuStrip = menuStrip;
}
  • Write code for menuItem Click event
void menuItem_Click(object sender, EventArgs e)
{
ToolStripItem menuItem = (ToolStripItem)sender;
if (menuItem.Name == "Exit")
{
Application.Exit();
}
}

Add image to Context Menu items

Image property of ToolStripMenuItem is used to add image to a menu item. In design view, select menu item and go to its property and click ellipsis(…) next to the Image property and select image from Local Resource or Project Resource File.

To add image to a menu item first add a folder named “icons” in the project and add images to that folder. I have added “Close.png” to that folder. ToolStripMenuItem.Image is set with an image so you can any image to it. You can also give any absolute path in Image.FromFile() method

     menuItem.Image=Image.FromFile("../../icons/Close.png");

Add shortcut keys to Context Menu items

In design view, use ShorcutKeys property to set shortcuts to the menu items. Select your prefered combination of keys by using CheckBoxes for Modifiers (Ctrl, Alt and Shift) and selecting Key from ComboBox. For example, to bind shortcut of “Alt+X” to Exit, select Alt CheckBox from Modifiers and select X from Key ComboBox

In code behind, write following to do the same, to add multiple keys separate them using Pipe character

     menuItem.ShortcutKeys = Keys.Alt|Keys.X;

By default, shortcut keys are shown with the menu items. It can be set to hidden by setting ShowShortcutKeys property of the menu item to false

     menuItem.ShowShortcutKeys = false;

Show CheckBox to Context Menu items

To show CheckBox in a menu item, set Checked property of ToolStripMenuItem to true. CheckBox is shown only if Image is not displayed in the menu item. CheckState of CheckBox can be set after setting Checked property to CheckState.Checked, CheckState.Indeterminate or CheckState.Unchecked

     menuItem.Checked = true;
menuItem.CheckState = CheckState.Checked

To add a toggle CheckBox to the menu item set CheckOnClick property to true. It toggles checked state of CheckBox when clicked

     menuItem.CheckOnClick = true;

Set Display Style of Context Menu items

Display style of a ToolStripMenuItem can be changed using DisplayStyle property. It can be set to one of the ToolStripItemDisplayStyle enumerators, ToolStripItemDisplayStyle.Image, ToolStripItemDisplayStyle.ImageAndText, ToolStripItemDisplayStyle.None or ToolStripItemDisplayStyle.Text

     menuItem.DisplayStyle = ToolStripItemDisplayStyle.ImageAndText;

Type of items in ContextMenuStrip

There are four types of items that can be added to a ContextMenuStrip

  1. MenuItem (ToolStripMenuItem) : It is used to give simple menu item like “Exit” in above example
  2. ComboBox (ToolStripComboBox) : It is used to insert a ComboBox in the context menu where user can select or type an item in ComboBox
  3. Separator (ToolStripSeparator) : It is used to give a horizontal line (ruler) between menu items
  4. TextBox (ToolStripTextBox) : It is used to give a TextBox in context menu where user can enter an item

Type of item can be selected by clicking on the arrow of the ComboBox labeled with “Type here”

create Context Menu in Windows Forms application using C# z的更多相关文章

  1. Windows Forms Application Creation and Initialization

    Windows Forms Application Creation and Initialization This topic details the steps performed after a ...

  2. Catch Application Exceptions in a Windows Forms Application

    You need to handle the System.Windows.Forms.Application.ThreadException event for Windows Forms. Thi ...

  3. 【C#遗补】获取应用程序路径之System.IO.Directory.GetCurrentDirectory和System.Windows.Forms.Application.StartupPath的区别

    原文:[C#遗补]获取应用程序路径之System.IO.Directory.GetCurrentDirectory和System.Windows.Forms.Application.StartupPa ...

  4. System.Windows.Forms.Application.DoEvents();

    关于Application.DoEvents()的小研究 在MSDN中的备注是: 当运行 Windows 窗体时,它将创建新窗体,然后该窗体等待处理事件.该窗体在每次处理事件时,均将处理与该事件关联的 ...

  5. Tools (StExBar vs Cmder)which can switch to command line window on context menu in windows OS

    https://tools.stefankueng.com/StExBar.html https://github.com/cmderdev/cmder

  6. Windows Forms (一)

    导读 1.什么是 Windows Forms 2.需要学Windows Forms 么? 3.如何手写一个简单的Windows Forms 程序 4.对上面程序的说明 5.Form 类与Control ...

  7. 如何为Windows Forms应用程序添加启动参数(Start-Up Parameters)

    很多场合下,我们需要通过命令行或者快捷方式在Windows Forms程序启动时向其传递参数. 这些参数可能是用来加载某一个文档,或者是应用程序的初始化配置文件. 特别是对那些需要高度自定义配置的大程 ...

  8. windows安装anaconda 报错failed to create anacoda menu ?

    windows安装anaconda 报错failed to create anacoda menu ? 装了无数次,每次都是 failed to create anacoda menu然后无选择忽略, ...

  9. Easy steps to create a System Tray Application with C# z

    Hiding the C# application to the system tray is quiet straight forward. With a few line of codes in ...

随机推荐

  1. 2016 系统设计第一期 (档案一)MVC 和 Bootstrap 表单转换

    bootstrap <form role="form"> <div class="form-group"> <label for= ...

  2. 微软职位内部推荐-Sr SDE-MODC-Beijing

    微软近期Open的职位: JOB TITLE: Senior Software Design EngineerDEPARTMENT: Microsoft Office Division ChinaIM ...

  3. OData 集成

    OData 集成 文档目录 本节内容: 简介 安装 安装Nuget包 设置模块依赖 配置你的实体 创建控制器 示例 获取实体列表 请求 响应 获取单个实体 请求 响应 获取单个实体及导航属性 请求 响 ...

  4. Mapped Statements collection does not contain value for TaskMapper.selectByPrimaryKey

    Mapped Statements collection does not contain value for后面是什么类什么方法之类的: 错误原因有几种: 1.mapper.xml中没有加入name ...

  5. Qt多国语言

    项目中需要多语言的部分以tr宏包含 例:setWindowTitle(tr("编辑")); .pro项目文件加入CODECFORTR = utf-8 #or gbk#DEFAULT ...

  6. Xcode8 重新配置 CocoaPods -替换阿里源

    一.CocoaPods是什么? CocoaPods是一个负责管理iOS项目中第三方开源库的工具.CocoaPods的项目源码在Github上管理.该项目开始于2011年8月12日,在这两年多的时间里, ...

  7. asp.net中js和jquery调用ashx的不同方法分享

    代码如下: var xhr = new XMLHttpRequest();            xhr.open("get", 'Controls/gengCart.ashx?C ...

  8. bzoj 1242: Zju1015 Fishing Net 弦图判定

    1242: Zju1015 Fishing Net弦图判定 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 214  Solved: 81[Submit ...

  9. 写给 iOS 开发者的 Hopper + lldb 简介

    最近,关于 @Steipete 在Radar发布的帖子,笔者看到很多人在问「你是怎么理解那个伪代码的」.笔者想写博客已经有一段时间了,现在正好就此发表第一篇博文.笔者在一个叫 Hopper 的工具上花 ...

  10. XSS 攻击在它的面前都弱爆了!

    虽然双十一刚刚过去不久,但是对很多工程师来说,连续熬夜加班的「噩梦」似乎还没有过去.尤其是像双十一这种活动,对于电商网站的工程师们来说,他们需要彻夜的加班加点来保障网站的稳定性和安全性.当然,面对上千 ...