Tag: contextmenu

当我使用快捷键时,获取ContextMenuStrip的SourceControl

我有单个ContextMenuStrip附加到两个控件( DataGridView )。 在ToolStripMenuItem单击事件中,我设法使用以下代码获取原始调用者( DataGridView ): var menu = (ToolStripDropDownItem)sender; var strip = (ContextMenuStrip)menu.Owner; var dgv = (DataGridView)strip.SourceControl; 当我点击ToolStripMenuItem时它工作得很好。 但是当我使用链接到ToolStripMenuItem的sortcut键时,条带。 SourceControl返回null。 有谁知道为什么?

如何从ItemTemplate中将Command绑定到ContextMenu?

我想将某个命令绑定到menuItem 。 所述菜单项是在ItemTemplate内定义的ContextMenu一部分。 现在,我编译并运行,但命令永远不会被调用。 在过去,我使用了类似的模式将命令挂钩到ItemTemplate定义的按钮并成功。 任何人都知道我怎么能做到这一点? XAML: C#: using System; using System.Collections.Generic; using System.Windows; using System.Windows.Data; using System.Windows.Input; namespace Wpf_treeView { public partial class MainWindow : Window { private static readonly Random rnd = new Random(); private List m_InfoData = new List(); public ListCollectionView DataInfosView { get; private set; } public static readonly DependencyProperty AddChildProperty […]

安装和注册shell扩展上下文菜单来自wix安装程序

我创建了锐利的shell扩展,用于使用.Net自定义Windows的右键菜单上下文。 该项目的结果是.dll。 我尝试使用服务器管理器工具安装和注册它,该工具与尖锐的shell工具一起存在并且它成功运行。 现在我需要从我的wix项目安装并注册这个shell扩展,因为我需要用户安装我的应用程序并在安装后获得自定义窗口的右键单击上下文菜单。 我需要详细的步骤,因为我是使用Wix安装程序的新手。

在WPF中的某些情况下会切断上下文菜单

上下文菜单在不同的.NET Framework中被截断。 查看ZIP文件中的图像(有两个截图,一个来自XP,另一个来自Win7)。 我创建了一个简单的Visual Studio 2010解决方案来重现我的问题。 ( http://www.mediafire.com/download.php?doq7gsh75qgvzwq )。 在XP上,它似乎工作正常,但不是在Windows 7上。 如果目标.NET Framework为3.5(包括SP1),则可以在Windows 7上重现该问题(请参阅zip中的图像)。 如果我将目标框架更改为4.0,它在Windows 7上也可以正常工作。 是否可以在Windows 7操作系统上的.NET Framework 3.5中使上下文菜单完全可见?

如何在ToolStripItemCollection中对项目进行排序?

我通过以下方式动态地将字符串(项)添加到ToolStripItemCollection: Dim onClickHandler As System.EventHandler = New System.EventHandler(AddressOf Symbol_Click) Dim item As New ToolStripMenuItem(newSymbol, Nothing, onClickHandler) SomeToolStripMenuItem.DropDownItems.Add(item) 因此,这些项目不会一次性添加,而是在整个程序会话中基于外部触发器逐个添加。 我想在每次添加新项目时对下拉列表进行排序。 我有什么选择来实现这一目标?

在Internet Explorer控件中禁用上下文菜单

如何禁用IE WebBrowser控件中的上下文菜单,而是在C#中执行右键单击事件的自定义处理?

使用UI自动化以编程方式打开上下文菜单

我正在尝试使用UI自动化实现右键单击上下文菜单。 由于UI自动化没有本机右键单击模式,因此我将ExpandCollapse提供程序添加到listview的AutomationPeer类,并将展开和折叠映射到打开和关闭上下文菜单。 我的问题是,是否有更好的方法来调用上下文菜单,而不涉及尝试使用私有构造函数实例化类? 我不能使用带Shift-F10的SendKeys。 我想使用PopupControlService,但标记为内部。 我糟糕的解决方法: public class MyListViewAutomationPeer : ListViewAutomationPeer, IExpandCollapseProvider { public MyListViewAutomationPeer(MyListView owner) : base(owner){} public override object GetPattern(PatternInterface patternInterface) { if (patternInterface == PatternInterface.ExpandCollapse) { return this; } return base.GetPattern(patternInterface); } public void Expand() { MyListView owner = (MyListView)Owner; //********************** //Ouch!!! What a hack //********************** //ContextMenuEventArgs is a sealed class, with […]

仅用于ListViewItem的ContextMenu

我有一个上下文菜单 – 问题是我需要它只在单击listviewitem时打开。 现在,如果我点击列表视图或标题中的任何位置,它将打开。 我已经尝试将ContextMenu添加为资源并将其应用为样式,但这会破坏命令(单击“更多信息”应该打开一个对话框窗口,这样做不起作用) 所以不确定如何将上下文菜单限制为listviewitem并使命令有效。

如果您点击或点击通知图标,如何获得不同的上下文菜单?

我有一个基于系统托盘的应用程序。 如果你右键单击它我有一个很好的上下文菜单但是我想要一个不同的上下文菜单显示你是否左键单击它。 现在我把不同的菜单显示出来 private void niTrayIcon_MouseClick(object sender, MouseEventArgs e) { if (e.Button == System.Windows.Forms.MouseButtons.Left) { cmsTrayLeftClick.Show(Cursor.Position); } } 这使得菜单显示但单击菜单不会使其消失,使菜单消失的唯一方法是单击项目或rt单击托盘图标。 我也想出了这个黑客,但它确实感觉这是正确的方法。 private void niTrayIcon_MouseClick(object sender, MouseEventArgs e) { if (e.Button == System.Windows.Forms.MouseButtons.Left) { niTrayIcon.ContextMenuStrip = cmsTrayLeftClick; MethodInfo mi = typeof(NotifyIcon).GetMethod(“ShowContextMenu”, BindingFlags.Instance | BindingFlags.NonPublic); mi.Invoke(niTrayIcon, null); niTrayIcon.ContextMenuStrip = cmsTrayRtClick; } } 这是正确的做法还是有更优雅的方式?

在WPF中打开ContextMenu时保留DataGrid IsSelectionActive?

我有一个DataGrid ,它具有IsSelectionActive的样式; 但是,一旦ContextMenu打开,网格就会丢失IsSelectionActive并且用户看起来好像上下文菜单以某种方式进行了选择并且可能会使用户感到困惑。 有没有办法在上下文菜单打开时保留IsSelectionActive ? <!—->