一、菜单控件的基本使用

1. ListBox

放置一个ListBox,用于右键菜单操作,并默认添加5个数据项:

C#上位机开发(十一)—— 右键菜单的使用_winform

2. 添加菜单控件

添加右键菜单控件:

C#上位机开发(十一)—— 右键菜单的使用_右键菜单_02

3. 为每个菜单项添加名称

点击右键菜单控制中的【添加】菜单项,然后在属性中找到Name,修改名称:

C#上位机开发(十一)—— 右键菜单的使用_c#_03

同样,修改其它两个菜单项的名称。

二、设置为右键菜单

1. 添加鼠标单击事件

给ListBox添加鼠标事件MouseUp:

C#上位机开发(十一)—— 右键菜单的使用_右键菜单_04

2. 弹出菜单

在鼠标单击事件回调函数中,弹出菜单:

private void listBox1_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
contextMenuStrip1.Show(listBox1, e.Location);
}

}

运行,效果如下:

C#上位机开发(十一)—— 右键菜单的使用_winform_05

3. 根据鼠标点击位置区分不同功能

private void listBox1_MouseUp(object sender, MouseEventArgs e)
{
// 是否右键单击
if (e.Button == MouseButtons.Right)
{
// 是否在空白处单击
int index = listBox1.IndexFromPoint(e.Location);
if (index >= 0)
{
// 选中该项
listBox1.SetSelected(index, true);

// 开启修改、添加、删除功能
ModifyToolStripMenuItem.Enabled = true;
DeleteToolStripMenuItem.Enabled = true;
}
else
{
// 清空选择
listBox1.ClearSelected();

// 空白处单击,只显示添加
ModifyToolStripMenuItem.Enabled = false;
DeleteToolStripMenuItem.Enabled = false;
}


contextMenuStrip1.Show(listBox1, e.Location);
}
}

运行,看看效果:

C#上位机开发(十一)—— 右键菜单的使用_控件_06

C#上位机开发(十一)—— 右键菜单的使用_右键菜单_07

三、右键菜单项的回调

直接双击该菜单项:

C#上位机开发(十一)—— 右键菜单的使用_菜单项_08

自动添加回调函数:

private void AddToolStripMenuItem_Click(object sender, EventArgs e)
{
listBox1.Items.Add("new student");
}

看看效果:

C#上位机开发(十一)—— 右键菜单的使用_菜单项_09