拜托先看看msdn再提问好不好?
右键菜单向 Windows 窗体添加上下文菜单请参见
Windows 窗体上的上下文菜单 | 演练:在 Windows 窗体上创建动态上下文菜单 | ContextMenu 组件(Windows 窗体)
ContextMenu 组件可让用户访问常用菜单命令。通常,上下文菜单与控件相关联,目的是使其菜单更符合用户的具体需要(如“撤消”、“剪切”、“复制”、“粘贴”、“删除”和“全选”等菜单命令,它们都是 Textbox 控件的上下文菜单的标准组成部分)。在设计时向 Windows 窗体添加上下文菜单 在“Windows 窗体设计器”中,打开要向其添加上下文菜单的窗体。 
在“工具箱”中,双击“ContextMenu”组件。 
一个菜单被添加到窗体中(该窗体显示文本“请在此处输入”),同时“ContextMenu”组件添加到了组件栏中。 通过在“属性”窗口中设置该对象的 ContextMenu 属性,将上下文菜单与该窗体或该窗体上的控件相关联。有关“ContextMenu”属性的更多信息,请参阅 Control.ContextMenu。 
以编程方式向 Windows 窗体添加上下文菜单 在“代码编辑器”中,创建一个新方法,该方法包括将上下文菜单添加到窗体中的代码。有关访问“代码编辑器”的更多信息,请参阅在设计器中显示 Windows 窗体。 
' Visual Basic
Public Sub AddContextMenu()End Sub// C#
public void AddContextMenu()
{}
在该方法内添加类似以下内容的代码,以创建“ContextMenu”组件的实例: 
' Visual Basic
   Dim mnuContextMenu as New ContextMenu()
   Me.ContextMenu = mnuContextMenu// C#
   ContextMenu mnuContextMenu = new ContextMenu();
   this.ContextMenu = mnuContextMenu;
将“MainMenu”组件添加到 Windows 窗体后,需要向其添加菜单项。菜单设计器可让您在设计时向“ContextMenu”组件添加菜单项。菜单内容保存在一个集合内,所以可在运行时向上下文菜单添加菜单项,方法是向此集合添加“菜单项”对象。在设计时向上下文菜单添加菜单项 单击 Windows 窗体上的 ContextMenu 组件。 
显示文本“请在此处输入”。 单击显示的文本,然后键入所需菜单项的名称以添加它。 
若要添加另一个菜单项,请单击“菜单设计器”内的另一个“请在此处输入”区域。 
单击当前菜单项右侧的区域,以添加子菜单项。 
- 或 - 单击当前菜单项下方的区域,以添加另一个菜单项。 
注意 另外,不论在设计时还是以编程方式都可复制现有菜单中的项。有关更多信息,请参阅将菜单项从菜单复制到上下文菜单。
以编程方式向上下文菜单添加菜单项 如果 Windows 窗体中还没有“ContextMenu”组件,请向某个公共方法内的 Windows 窗体添加该组件,并通过在“属性”窗口中设置“ContextMenu”属性,将该组件与窗体或另一个控件相关联。有关集合的更多信息,请参阅对象之间的关系。 
' Visual Basic
Public Sub AddContextMenuAndItems()
   Dim mnuContextMenu as New ContextMenu()
   Me.ContextMenu = mnuContextMenu
End Sub// C#
public void AddContextMenuAndItems()
{
   ContextMenu mnuContextMenu = new ContextMenu();
   this.ContextMenu = mnuContextMenu;
}
在该方法内,创建要添加到 ContextMenu 对象的集合中的 MenuItem 对象: 
' Visual Basic
   Dim mnuItemNew as New MenuItem()
   Dim mnuItemOpen as New MenuItem()// C#
   MenuItem mnuItemNew = new MenuItem();
   MenuItem mnuItemOpen = new MenuItem();
在该方法内,为这些菜单项中的每一个设置 Text 属性: 
' Visual Basic
   mnuItemNew.Text = "&New"
   mnuItemOpen.Text = "&Open"// C#
   mnuItemNew.Text = "&New";
   mnuItemOpen.Text = "&Open";
在该方法内,将这些菜单项添加到 ContextMenu 对象的 MenuItems 集合中: 
' Visual Basic
   mnuContextMenu.MenuItems.Add(mnuItemNew)
   mnuContextMenu.MenuItems.Add(mnuItemOpen)// C#
   mnuContextMenu.MenuItems.Add(mnuItemNew);
   mnuContextMenu.MenuItems.Add(mnuItemOpen);
注意 若要创建子菜单,可将 MenuItem 对象添加到父 MenuItem 的 MenuItems 集合中。在前面的示例中,如果要将第三个菜单项 (myMenuItemOpenWith) 作为第二个菜单项 (myMenuItemOpen) 的子菜单添加,则应包括下列代码行:
' Visual Basic
   Dim mnuItemOpenWith as new MenuItem()
   mnuItemOpenWith.Text = "Open &With..."
   mnuItemOpen.MenuItems.Add(mnuItemOpenWith)// C#
   MenuItem mnuItemOpenWith = new MenuItem();
   mnuItemOpenWith.Text = "Open &With...";
   mnuItemOpen.MenuItems.Add(mnuItemOpenWith);
菜单项也可在创建时动态添加,属性也是这样,可在创建和添加菜单项时设置。例如,若要将第四个菜单项添加到上面的集合“并且”同时设置其 Text 属性,请输入下列代码:' Visual Basic
   mnuContextMenu.MenuItems.Add("&Close")// C#
   mnuContextMenu.MenuItems.Add("&Close");
有关向 MenuItems 集合中添加菜单项时动态创建菜单项的更多信息,请参阅 Menu.MenuItemCollection 类。向菜单项添加功能
最后,一旦建立了菜单结构,就要为菜单项提供功能。要做到这一点常常是通过为 MenuItem.Click 事件创建一个事件处理程序,然后编写代码来处理这个事件。有关事件处理程序的更多信息,请参阅 Windows 窗体中事件处理程序的介绍。请参见
Windows 窗体上的上下文菜单 | 演练:在 Windows 窗体上创建动态上下文菜单 | ContextMenu 组件(Windows 窗体)