我有一个列表框,它填充了项目,我想知道如何:添加右键/上下文菜单列表框项目在C#
- 当你在列表框中点击右键,该的RightClicked项目将被选中,
- 一个右键菜单将有几个项目被显示.. 当你点击任何项目,相应的空白将被触发的
- ...
在此先感谢您的帮助和代码ex请给我点心!
我有一个列表框,它填充了项目,我想知道如何:添加右键/上下文菜单列表框项目在C#
在此先感谢您的帮助和代码ex请给我点心!
这对我来说就像是一个“家庭作业”问题,所以我会回答(我希望)给你几个指针来解决这个问题。
一期
...
二期
运行测试程序并观察报告什么事件鼠标左键向下和右的区别 - 鼠标向下(假设您的环境将上下文点击设置为鼠标右键......这可能不适用于所有人)。
专注于您可以通过上下文单击进行截取的一个事件。
将上下文菜单添加到测试项目,并将该上下文菜单设置为ListBox的上下文菜单。
验证您现在可以右键点击列表框和上下文菜单中就会出现一个项目,但该事件仍是处理案件被处理程序YOU“发现”,在步骤2中
现在去通过列表框的所有事件处理程序,并找出哪一个可以用来检测,给定列表框中的某个位置,哪个列表项被“命中”。
一旦你可以确定右键单击哪个List Item,并且你知道你的上下文菜单正在工作,你只有确保右键单击的List Item被选中的问题,这很容易。
想象一下,你自己会教会你几个非常有用的东西,你稍后可以在其他控件编程中使用。
好运,比尔
1.当你右击在列表框中,是正确的点击项将被选中
2.A右键菜单将有几个项目被显示..
private void listBoxNode_MouseUp(object sender, MouseEventArgs e)
{
int location = listBoxNode.IndexFromPoint(e.Location);
if (e.Button == MouseButtons.Right)
{
listBoxNode.SelectedIndex = location; //Index selected
contextMenuStrip1.Show(PointToScreen(e.Location)); //Show Menu
}
}
3.当你点击任何项目,相应的空白将被触发的..
private void showDetailsToolStripMenuItem_Click(object sender, EventArgs e)
{
//put your code here after clicking
//on items in context menu
}
“一相应的空白将被触发“:这是什么意思?我认为你的意思是根据用户选择哪个菜单项来触发一个方法/程序。 – BillW 2009-11-14 09:03:06
wpf或winforms? – Peter 2009-11-14 09:25:45
这是一个有用的问题;它只是需要一些小的编辑。 – JYelton 2010-05-18 19:03:10