当前位置: 首页 > 编程语言 > C#

在ListView中显示项目的上下文菜单分享

时间:2023-04-10 17:18:51 C#

在ListView中显示项目的上下文菜单现在,拜托,我知道如何在右键单击listView时弹出一个contextMenu,我想要的是当我右键单击时弹出一个项目。我正在尝试设置聊天服务器和客户端,现在...现在我想在右键单击已连接的客户端项目时查看客户端信息。我现在应该怎么做?谢谢!privatevoidlistView1_MouseClick(objectsender,MouseEventArgse){if(e.Button==MouseButtons.Right){if(listView1.FocusedItem.Bounds.Contains(e.Location)){contextMenuStrip1.Show(Cursor.Position);}}}可以把连接的客户端信息放在contextMenuStrip1中。当您右键单击一个项目时,您可以显示该contextMenuStrip1中的信息。您将不得不使用ListViews上下文菜单,但这会根据您右键单击的ListView项目而变化。privatevoidlistView1_MouseDown(objectsender,MouseEventArgse){boolmatch=false;if(e.Button==System.Windows.Forms.MouseButtons.Right){foreach(ListViewItemiteminlistView1.Items){if(item.Bounds.Contains(newPoint(eX,eY))){MenuItem[]mi=newMenuItem[]{newMenuItem("Hello"),newMenuItem("World"),newMenuItem(item.Name)};listView1.ContextMenu=new上下文菜单(mi);匹配=真;休息;}}if(match){listView1.ContextMenu.Show(listView1,newPoint(eX,eY));}else{//ShowlistViewscontextmenu}}}你可以触发ListViewMouseDown或MouseUp事件,如果MouseButton.Right然后使用ListView.Hittest获取所选项目并提供与该所选项目相关的上下文菜单。为了更清楚,您可以通过此链接这个主题很老,但我会留下我的解决方案以供参考。将上下文菜单放在xamlListView定义中:...现在,在代码中定义两个事件处理程序,它们将在单击相应的菜单项时启动:privatevoidContextMenuItem1Clicked(objectsender,RoutedEventArgse){//处理事件对于选定的ListViewItem,通过ListViewItemselected_lvi=this.m_list.SelectedItemasListViewItem访问它;}privatevoidContextMenuItem2Clicked(objectsender,RoutedEventArgse){//处理通过ListViewItem访问它的选定ListViewItem的事件selected_lvi=this.m_list.SelectedItemasListViewItem;}ListView可以容纳对象,也就是说selected_lvi可以是对象的类型。只需转换为正确的类型即可。我希望这有帮助。最好的问候,Mic我找到了一个不依赖于鼠标事件处理程序的新解决方案。ContextMenu有一个“Popup”事件处理程序。在弹出窗口中,我根据上下文添加了我需要的相关菜单项。示例:privateMenuItem[]standardMenuItems;私人菜单项[]selectedMenuItems;publicSomePanel(){InitializeComponent();//这些是菜单项列表(名称/回调),将根据某些上下文//选择这些菜单项standardMenuItems=newMenuItem[]{newMenuItem("New",OnNew)};selectedMenuItems=newMenuItem[]{newMenuItem("Delete",OnDelete),newMenuItem("Edit",OnEdit)};上下文菜单contextMenu=new上下文菜单();//从“标准项目”开始contextMenu.MenuItems.AddRange(standardMenuItems);listview.ContextMenu=contextMenu;//添加弹出句柄contextMenu.Popup+=OnMenuPopup;}//在菜单出现之前调用privatevoidOnMenuPopup(objectsender,EventArgse){ContextMenumenu=senderasContextMenu;如果(菜单==null)返回;//如果选择了一个项目,则显示删除和编辑选项if(listview.SelectedItems.Count>0){menu.MenuItems.Clear();menu.MenuItems.AddRange(selectedMenuItems);}//埃尔斯e仅显示新选项else{menu.MenuItems.Clear();menu.MenuItems.AddRange(standardMenuItems);我对C#和Winforms不够流利,无法确保这种技术没有任何缺点,但它依赖于鼠标事件的替代方案(如果上下文菜单出现在其他键盘或鼠标事件上怎么办?)以上是C#学习教程:显示ListView中item的上下文菜单分享的全部内容,如果对大家有用还需要了解更多C#学习教程,希望大家多多关注--privatevoidcontextMenuStripExport_Opening(objectsender,System.ComponentModel.CancelEventArgse){if(exportview.SelectedItems.Count本文采集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除如有转载请注明出处: