我有一个ListBox,其中填充了项目,id喜欢知道如何:
提前感谢任何帮助,请提供代码示例!
答案 0 :(得分:4)
这对我来说就像是一个“功课”问题,所以我将回答(我希望)给你一些指导,为你自己解决这个问题。
第一阶段
...
第二阶段
运行测试程序并观察左下鼠和右下鼠报告的事件之间的差异(假设您的环境将上下文点击设置为鼠标右键...这可能不是适合每个人)。
专注于您可以通过上下文单击拦截的一个事件。
向测试项目添加上下文菜单,并将该上下文菜单设置为ListBox的上下文菜单。
确认您现在可以右键单击ListBox中的某个项目并显示上下文菜单,但事实仍然是由您在第2步中“发现”的处理程序处理。
现在遍历ListBox的所有事件处理程序,并找出哪一个可用于检测,给定ListBox中的某个位置,哪个列表项被“命中”。
一旦您确定右键单击了哪个列表项,并且您知道上下文菜单正在运行,您就只能确保选择右键单击的列表项:这很容易
自己解决这个问题会教你几个非常有用的东西,你可以在以后编程到其他控件时使用。
祝你好运,比尔答案 1 :(得分:0)
首先,您需要订阅ListBox.MouseClick事件。您将能够确定按下了什么按钮和光标坐标。然后,使用ListBox.IndexFromPoint方法查找单击的项目。您可以使用ListBox.SelectedIndex属性选择它。要显示上下文菜单,请使用ContextMenu或ContextMenuStrip类。有关上下文菜单的其他文档,请参见MSDN
答案 2 :(得分:0)
1.右键单击列表框时,将选择右键单击的项目
2.右键菜单将显示多个项目..
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
}