Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在menustrip中调用图像并将其隐藏?_C#_Winforms - Fatal编程技术网

C# 如何在menustrip中调用图像并将其隐藏?

C# 如何在menustrip中调用图像并将其隐藏?,c#,winforms,C#,Winforms,我想知道如何才能做到这一点,因为我将使用它来通知用户某个选项卡中是否有值 所以我想做的是,当图像有值时会出现,当它为空时,图像会被隐藏 请注意,当某个选项卡中有值时,图像将重新出现。我建议您使用某个选项卡的属性 您可以通过向控件添加mouseenter和mouseleave事件来测试这一点,如本例所示。这样,您就不会像上面的评论中建议的那样删除图像(通过将其设置为null) private void testToolStripMenuItem_MouseEnter(object sender

我想知道如何才能做到这一点,因为我将使用它来通知用户某个选项卡中是否有值

所以我想做的是,当图像有值时会出现,当它为空时,图像会被隐藏


请注意,当某个选项卡中有值时,图像将重新出现。

我建议您使用某个选项卡的属性

您可以通过向控件添加mouseenter和mouseleave事件来测试这一点,如本例所示。这样,您就不会像上面的评论中建议的那样删除图像(通过将其设置为null)

 private void testToolStripMenuItem_MouseEnter(object sender, EventArgs e)
    {
        (sender as ToolStripMenuItem).DisplayStyle = ToolStripItemDisplayStyle.Text;
    }

    private void testToolStripMenuItem_MouseLeave(object sender, EventArgs e)
    {
        (sender as ToolStripMenuItem).DisplayStyle = ToolStripItemDisplayStyle.ImageAndText;
    }
我希望这能进一步帮助你


干杯

我是这样做的,当某个表中有值时,图像就会出现,除非它是空的,否则menutoolstrip中的图像就不会出现

这是我的密码:

private void Home_Load(object sender, EventArgs e)
    {
        if (GetPurchase())
        {
            forApprovalToolStripMenuItem.Image = Properties.Resources.sign_check_icon;
        }
        else
        {
            forApprovalToolStripMenuItem.Checked = false;
        }


        itemRequestsToolStripMenuItem.Enabled = true;
        forApprovalToolStripMenuItem.Enabled = false;

    }

    bool GetPurchase()
    {
        bool withPending;
        using (SqlConnection con = new SqlConnection(Helper.GetConnection()))
        {
            con.Open();
            string query = @"SELECT POID FROM purchaseorder_table WHERE status='Pending'";
            using (SqlCommand cmd = new SqlCommand(query, con))
            {
                return withPending = cmd.ExecuteScalar() == null ? false : true;
            }
        }
    }

为菜单打开事件创建事件处理程序。根据显示/不显示决策所依据的状态,修改ToolStripItem具有图像属性的菜单项属性。将它设置回null以隐藏它。我尝试应用它,但它没有任何作用。我认为它缺乏something@JonathanSumilang它很好用。非常小心地使用toolStripMenuItem的正确名称。很好的解决方案+1我尝试了几次应用它,但在我的项目中效果不好,我需要在某个事件发生时触发此事件,如需要批准的项目堆积时,图像将出现在工具条菜单上,然后在批准所有项目后,如果没有请求,图像将消失made@JonathanSumilang提供的代码只是如何使用MouseEnter和Mousellave实现这一点的示例。我之所以选择这两个事件是为了让您对实现有一个简单的视觉感受。您可以在代码中的任何地方很好地实现这一点。也许你可以给我提供更深入的源代码示例,我可以更好地帮助你。