我有一个ContextMenuStrip
分配给几个不同的列表框.我想ContextMenuStrip
知道什么时候单击ListBox
它使用它.我尝试下面的代码作为开始,但它不起作用.在sender
有正确的价值,但是当我试图把它分配给了menuSubmitted
它为空.
private void MenuViewDetails_Click(object sender, EventArgs e)
{
ContextMenu menuSubmitted = sender as ContextMenu;
if (menuSubmitted != null)
{
Control sourceControl = menuSubmitted.SourceControl;
}
}
Run Code Online (Sandbox Code Playgroud)
任何帮助都会很棒.谢谢.
使用下面的帮助,我发现了:
private void MenuViewDetails_Click(object sender, EventArgs e)
{
ToolStripMenuItem menuItem = sender as ToolStripMenuItem;
if (menuItem != null)
{
ContextMenuStrip calendarMenu = menuItem.Owner as ContextMenuStrip;
if (calendarMenu != null)
{
Control controlSelected = calendarMenu.SourceControl;
}
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个与treenode相关的contextmenustrip控件.我在表单本身中手动创建了一个菜单项(例如,命名为"Assign").
现在,我想在用户单击此Assign项时添加子菜单项,它将创建一个用户名列表作为带有选中或未选中选项的子菜单项.
例如,一旦用户单击Assign,然后我想动态显示用户名.
在选择/检查某些项目后,是否可以打开ContextMenuStrip?
我打算使用一个简单的ContextMenuStrip来设置过滤器(这样我可以在菜单中使用相同的过滤器或作为右键单击选项).
菜单列出了许多项目,我希望用户能够使用基本检查功能选择项目.选择完成后,用户可以单击"激活过滤器"选项,也可以单击菜单外部以激活或取消过滤器.
在选择/单击事件上,菜单通常会关闭.是否可以在点击事件中保持菜单打开?
我想点击一个按钮,让它在按钮下方显示一个上下文.当我尝试使用pointtoacreen和top和left坐标时,它会一直显示在屏幕的左侧.
有什么建议
我有ContextMenuStrip
两个ToolStripItem
s 的设置.第二个ToolStripItem
有两个额外的嵌套ToolStripItem
s.我将其定义为:
ContextMenuStrip cms = new ContextMenuStrip();
ToolStripMenuItem contextJumpTo = new ToolStripMenuItem();
ToolStripMenuItem contextJumpToHeatmap = new ToolStripMenuItem();
ToolStripMenuItem contextJumpToHeatmapStart = new ToolStripMenuItem();
ToolStripMenuItem contextJumpToHeatmapLast = new ToolStripMenuItem();
cms.Items.AddRange(new ToolStripItem[] { contextJumpTo,
contextJumpToHeatmap});
cms.Size = new System.Drawing.Size(176, 148);
contextJumpTo.Size = new System.Drawing.Size(175, 22);
contextJumpTo.Text = "Jump To (No Heatmapping)";
contextJumpToHeatmap.Size = new System.Drawing.Size(175, 22);
contextJumpToHeatmap.Text = "Jump To (With Heatmapping)";
contextJumpToHeatmap.DropDownItems.AddRange(new ToolStripItem[] { contextJumpToHeatmapStart,
contextJumpToHeatmapLast });
contextJumpToHeatmapStart.Size = new System.Drawing.Size(165, 22);
contextJumpToHeatmapStart.Text = …
Run Code Online (Sandbox Code Playgroud) 我试图找出是否有办法调用ToolStripMenuItem.
例如,我在返回结果时调用Web服务(ASynchrously).根据结果填充下拉项,(在回调方法中)
ToolStripMenuItem.DropDownItems.Add(new ToolStripItemEx("start"));
Run Code Online (Sandbox Code Playgroud)
但我得到例外
跨线程操作无效:控制''从创建它的线程以外的线程访问.
没有与工具条项相关联的调用函数,还有另一种方法可以做到这一点吗?我试图以完全错误的方式做到这一点吗?任何输入都会有所帮助.
我正在使用ContextMenuStrip
多个控件,我试图找出获得实际点击的控件打开上下文菜单的最佳方法.发件人只提供ToolStripMenuItem
引用,它具有引用该引用的所有者属性ContextMenuStrip
,但我无法弄清楚如何判断单击来自哪个控件.必须有一个简单的方法来检查这个,对吗?我在ToolStripMenuItem
点击事件中检查它.
Friend WithEvents mnuWebCopy As System.Windows.Forms.ToolStripMenuItem
...
Private Sub mnuWebCopy_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles mnuWebCopy.Click
Run Code Online (Sandbox Code Playgroud)
我发现了一篇关于这个的类似帖子,但提到使用SourceControl
我在这里看不到的属性.
我正在使用Visual Studio 2008,VB.Net winforms.
我正试图contextmenustrip
在我右键单击鼠标的地方打开一个,但它总是显示在屏幕的左上角.
这是我使用的代码:
private void dataGridView1_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
contextMenuStrip1.Show(new Point(e.X,e.Y));
doss.getdossier(connection.conn, Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells[0].Value));
}
}
Run Code Online (Sandbox Code Playgroud) 我正在使用VS 2008,我想ContextMenuStrip
在我的应用程序中添加一个contextMenu(绝对不是!!).工具箱中没有contextMenu(!!).那么如何以编程方式将其添加到我的代码中?
提前致谢,
我正在设计一个日志记录功能,用户可以在其中选择要记录的事件.点击按钮,我显示这种类型的菜单:
用户可以选择多个事件,因此当用户点击它时,我需要在所选选项的前面显示"复选标记".
我无法找到此问题中提到的"Checked"或"CheckOnClick"等选项.
我尝试使用ContextMenu和ContextMenuStrips但无法实现Checkboxes.有什么建议??
contextmenustrip ×10
c# ×9
winforms ×6
.net ×3
contextmenu ×2
button ×1
c#-4.0 ×1
invoke ×1
vb.net ×1