标签: toolstripitem

如何在Winforms中更改ToolStripItem的已检查状态?

当我查找它时,它们将其列为具有.Checked属性.但是在Visual Studio和msdn上,它都没有列出任何Checked属性的孩子.

ContextMenuStrip menu = new ContextMenuStrip ( );
var menuItem = menu.Items.Add ( "CheckedItem" );
//menuItem.Checked?
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

.net c# contextmenu toolstripitem winforms

12
推荐指数
1
解决办法
1万
查看次数

只检查一个ToolStripMenuItem

我有一个ToolStrip多个ToolStripDropDownButtons,每个都有一套DropDownItems.

当用户单击DropDownItem时,将显示复选标记.

在此输入图像描述

默认情况下,可以单击多个项目,因此会出现多个复选标记.

在此输入图像描述

我要做的是当用户点击一个DropDownItem时,应该取消选中其他已检查的项目.换句话说,DropDown列表中应始终只有一个已检查项.

我已经讨论了一段时间,但我无法弄清楚如何保留当前检查的项目,同时取消选中其他项目.

下面是我现在的代码.

private void subietm1ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            UncheckOtherToolStripMenuItems(sender);
        }

        public void UncheckOtherToolStripMenuItems(object selectedMenuItem)
        {
            List<ToolStripDropDownButton> dropdownButtons = new List<ToolStripDropDownButton>();
            foreach (ToolStripItem item in toolStrip1.Items)
            {
                if (item is ToolStripDropDownButton)
                {
                    dropdownButtons.Add((ToolStripDropDownButton)item);
                }
            }

            foreach (ToolStripDropDownButton btn in dropdownButtons)
            {
                foreach (ToolStripMenuItem d in btn.DropDownItems)
                {
                    if (d.Checked)
                        d.CheckState = CheckState.Unchecked;
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

如果有人能够对此有所了解,或者告诉我一个简单的方法,我将不胜感激.

谢谢.

toolstripitem toolstrip checked winforms toolstripdropdown

7
推荐指数
1
解决办法
1万
查看次数

在RunTime中向ToolStrip添加项目

您好我有一个带有"收藏夹"菜单的ToolStripMenu,我想在运行时在WinForms应用程序中添加子项.我有一个datagridview,我右键单击以显示具有"添加到收藏夹"选项的上下文菜单.当该事件被触发时,我想使用datagriview中的所选行中的一些文本添加一个项目(我知道该怎么做)到这个收藏夹菜单.棘手的部分是我需要为我的newlyCreatedToolStripMenuItem_Click事件创建代码.我将在稍后确定如何保存我的收藏夹列表.

所以我们要去:

右键单击datagridview"约翰史密斯"行

从中选择"添加到收藏夹" ContextMenu

收藏夹ToolStripMenu中添加了一个新项目,内容为"John Smith"

单击"John Smith" ToopStripMenuItem会触发一个动作(例如在daragridview行中选择该行等)

有什么好的开始想法?

c# toolstripitem toolstripmenu

6
推荐指数
1
解决办法
2万
查看次数

如何在ToolStripMenuItem中删除右侧空白区域

SS

在屏幕截图中,我用绿色矩形标记了空白空间,我希望在ToolStripMenuItem中左右空间大小相等,但右侧有更大的空白区域,我无法删除.

代码:

    private void UpdateWorkflowsMenu()
    {
        ((ToolStripDropDownMenu)tsddbWorkflows.DropDown).ShowImageMargin = false;

        tsddbWorkflows.DropDownItems.Clear();

        Program.HotkeyManager.Hotkeys.ForEach<HotkeySettings>(x =>
        {
            if (x.TaskSettings.Job != HotkeyType.None && (!Program.Settings.WorkflowsOnlyShowEdited || !x.TaskSettings.IsUsingDefaultSettings))
            {
                ToolStripMenuItem tsmi = new ToolStripMenuItem(x.TaskSettings.Description);
                if (x.HotkeyInfo.IsValidHotkey) tsmi.ShortcutKeyDisplayString = " " + x.HotkeyInfo.ToString();
                tsmi.Click += (sender, e) => HandleTask(x.TaskSettings);
                tsddbWorkflows.DropDownItems.Add(tsmi);
            }
        });

        tsddbWorkflows.Visible = tsddbWorkflows.DropDownItems.Count > 0;
    }
Run Code Online (Sandbox Code Playgroud)

.net c# toolstripitem winforms

6
推荐指数
1
解决办法
930
查看次数

鼠标滚轮滚动工具条菜单项

我有一些包含许多菜单项的菜单。鼠标滚轮不会滚动它们。我必须使用键盘箭头或单击顶部和底部的箭头。是否可以使用鼠标滚轮滚动工具条菜单项?谢谢

c# scroll toolstripitem winforms toolstripmenu

3
推荐指数
2
解决办法
4914
查看次数

Option Strict On 不允许在 String 和 Object {String} 之间进行隐式转换

我正在尝试通过使用Option Strict On. 我设法清除了除此之外的所有错误。
我正在使用 ToolStrip 的 Tag 属性获取一些文本信息。单击 ToolStrip,我需要记住字符串中 Tag 的值并更改该 Tag 的值。

如何将Object {String} sender.tag 转换为String以及String myString 和Object {String}

Private Sub ToolStrip_ItemClicked(sender As Object, e As ToolStripItemClickedEventArgs) Handles ToolStrip.ItemClicked
    Dim myString As String = sender.tag
    sender.tag = "It is selected"
    'more code...
End Sub
Run Code Online (Sandbox Code Playgroud)

编辑:在此处查看代码相关部分的屏幕截图:

在此处输入图片说明

vb.net toolstripitem toolstrip winforms

1
推荐指数
1
解决办法
106
查看次数

检测右键单击工具栏按钮

我有一个带有上下文菜单的工具条和一个带有click事件的工具条按钮.最初我尝试将上下文菜单分配给按钮本身,但在其属性中找不到上下文菜单.所以我将上下文菜单分配给了工具条.现在,只要我右键单击上下文菜单的按钮,就会触发按钮单击事件.我想检查点击了哪个鼠标按钮,所以我厌倦了将事件参数转换为mouseeventargs:

if (((MouseEventArgs)e).Button != MouseButtons.Left) return;
Run Code Online (Sandbox Code Playgroud)

但我有一个例外,我不能做这个演员.我可以为按钮指定上下文菜单或检测单击哪个鼠标按钮吗?谢谢

c# toolstripitem toolstrip winforms

0
推荐指数
1
解决办法
1639
查看次数