如何在菜单栏中调用图像并将其隐藏?

时间:2018-10-10 15:08:09

标签: c# winforms

我想知道如何完成此操作,因为我将用它来通知用户某个选项卡中是否包含值。

所以我想发生的是图像将在具有值时显示,而当图像为空时,图像将被隐藏。

enter image description here

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

2 个答案:

答案 0 :(得分:1)

我建议您使用stage 3 or onwardsDisplayStyle属性。

您可以通过仅在本示例中将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;
    }

希望这对您有所帮助。

欢呼

答案 1 :(得分:0)

我这样做是通过让图像出现在某个表中具有值的情况下来完成的,除非它为空,否则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;
            }
        }
    }