如何基于值设置和获取上下文菜单条中项目的文本和/或背景的颜色值?
这段代码是正确的吗?
ContextMenuStrip1.Items.Add("this is an item").BackColor = Color.FromArgb(255, 179, 179);
Run Code Online (Sandbox Code Playgroud)
但我找不到获得颜色值的方法!
我这样做了:
int i = ContextMenuStrip1.Items.IndexOfKey("this is an item");
Color c = ContextMenuStrip1.Items[i].BackColor; // I get error in here!
Run Code Online (Sandbox Code Playgroud)
但它不起作用!!!!
还有如何根据项目字符串值获取或/和设置其他属性(例如"这是一个项目")?
干杯
我有一个ContextMenuStrip分配给NotifyIcon,这适用于右键单击罚款.
如何连接鼠标单击事件以告知NotifyIcon显示其ContextMenuStrip?
private void taskbarIcon_MouseClick(object sender, MouseEventArgs e)
{
switch (e.Button)
{
case MouseButtons.Left:
// What could I use here?
break;
default:
break;
}
}
Run Code Online (Sandbox Code Playgroud) 在我的Windows应用程序中,我有一个带网格的上下文菜单,问题是我想根据用户previlages在上下文菜单中禁用ToolStripMenuItem.我怎么能这样做.我这样做了但是没有用
private void contextMenuStrip_Machine_Opening(object sender, CancelEventArgs e)
{
toolStripAuthorize.Enabled = INFOpermission.accessAuthorize;
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用
在我的应用程序中,我有一个包含两个项目的 ContextMenuStrip。每个项目都有一个图像和一个文本。如下图所示,菜单项的图像部分与其文本之间存在默认间隙(该间隙由红色箭头指示)。
我想通过向左移动文本来减少水平间隙,以便将间隙减少到最大 1 像素。
是否可以?如果是,我该怎么办?
我有一个带有ContextMenuStrip的DataGridView.ContextMenuStrip的默认行为是自动关闭 - 即立即关闭与之交互的用户.我已经将其关闭以允许多个用户交互(这是我想要的),但是除此之外,我真正需要的是上下文菜单随后关闭用户点击其自身之外的任何地方.
用户点击的空间可以直接在表单上,也可以在子控件(或孩子的孩子等)上.然而,无论如何,我希望整齐地捕获'click away'事件,从而关闭ContextMenuStrip.
非常感谢任何想法.
塔米姆.
我有一个datagridview有五列和上下文菜单条,其中包含项目和子项目.当我右键单击最后一列时,我想打开上下文菜单.
我尝试了这段代码,但它是没有子项的打开上下文菜单条.
dataGrid.Columns[dataGrid.Columns.Count].HeaderCell.ContextMenuStrip = contextMenuStrip1;
Run Code Online (Sandbox Code Playgroud) 我已经在整个表单中禁用了默认的上下文条,并替换为我自己的.在我的contextmenustrip中我有一个toolstriptextbox,但是当在其中右键单击它会打开默认的Windows上下文菜单..提前感谢任何和所有回复,问候, 戴夫
我有一个listview,它具有详细信息的视图模式,并有一个contextmenustrip用于删除所选行中的项目.我的问题是,当我右键单击一个空行时,它会假定所选项目是列表中的第一个项目.contextmenustrip是否有可能只出现在具有值的行中?这是我在contextmenustrip中删除的代码
private void removeToolStripMenuItem_Click(object sender, EventArgs e)
{
DialogResult drty = MessageBox.Show("Remove student " +listView2.Items[listView2.FocusedItem.Index].SubItems[1].Text + " from class?","Remove Data",MessageBoxButtons.OKCancel,MessageBoxIcon.Question);
if (drty == DialogResult.OK)
{
conek.nonQuery("delete from class_info where class_id = '"+Convert.ToInt32(textBox5.Text)+"' and stud_id = '"+Convert.ToInt32(listView2.Items[listView2.FocusedItem.Index].SubItems[0].Text)+"'");
ListViewItem lrs = listView2.Items[listView2.FocusedItem.Index];
listView2.Items.Remove(lrs);
}
}
Run Code Online (Sandbox Code Playgroud) 如何重新排列 a 的项目ContextMenuStrip?例如,如果我创建一个带有按钮的 Windows 窗体应用程序,并将 a 添加ContextMenuStrip到窗体中,并将其分配给按钮单击事件,并按顺序添加项目
run process1
run process2
run process3
Run Code Online (Sandbox Code Playgroud)
然后有一天我决定在ContextMenuStrip“运行 process4”中添加另一个项目,我希望序列类似于
run process1
run process4
run process2
run process3
Run Code Online (Sandbox Code Playgroud)
我该如何做到这一点(除了重命名每个项目并交换每个点击事件上的代码)?
我正在开发.net 2.0中的winforms应用程序.
我想知道如何在附加到通知图标的contextmenustrip中显示徽标.
它不是文本旁边显示的那种图标.它是跨越整行的那种,通常用于显示公司徽标.抱歉,我还不能发布图片.
编辑:
ContextMenuStrip1.Items.Add(new ToolStripMenuItem(String, Image) )
Run Code Online (Sandbox Code Playgroud)
但是,这只给我一个图标,其中一行旁边有一些文本,当光标悬停在它上面时,它会突出显示.
我想要实现的是在没有任何文本的情况下在单行上显示图像,并且当光标悬停或可点击时它不能突出显示.
contextmenustrip ×10
c# ×8
winforms ×8
.net ×4
contextmenu ×2
datagridview ×1
events ×1
graphics ×1
items ×1
listview ×1
menu ×1
notifyicon ×1
toolstrip ×1
vb.net ×1