簡體   English   中英

禁用ToolStripMenuItem與禁用MenuStrip.Item

[英]Disabling a ToolStripMenuItem vs. disabling a MenuStrip.Item

當用戶登錄到我的應用程序時,有些菜單項是我不希望每個用戶看到的。 所以我想禁用或使菜單項不可見。 例如fileToolStripMenuItem是我的第一個項目menuStrip ,當我嘗試:

fileToolStripMenuItem.Enabled = false; -這不起作用menuStrip.Items[0].Enabled = false; -這確實有效

有人能啟發我這里的區別嗎?

另外,我希望能夠從一個菜單項中禁用下拉菜單項,但是我也不能這樣做。

這是代碼:

public Form1()
        {
            InitializeComponent();

            // bunch of other code here

            if (!login.ValidatedUser)
            {
                menuStrip1.Items[0].Visible = false; // this works
                toolsToolStripMenuItem.Visible = false; // this does not
                btnStartResourceManager.Enabled = false;
                listAvailableSizes.Enabled = true;
                panelPicSet.Enabled = true;
            }
        }

fileToolStripMenuItem.Enabled = false; 如預期般運作。 我認為您嘗試在InitializeComponent()之前禁用它; 呼叫。

public form()
{
    InitializeComponent();
    fileToolStripMenuItem.Enabled = false;//disables all file menu
    saveasToolStripMenuItem.Enabled = false; //disables save as menu item in file menu list
}

對於子項目,只需右鍵單擊該項目,然后在“屬性”窗口的“設計”部分中查看其名稱。 在我的情況下,下面是addNewToolStripMenuItem1

public Form()   
    {
        InitializeComponent();
        menuStrip1.Items[1].Visible = false; // For Main Item // Bold Letters
        addNewToolStripMenuItem1.Visible = false; //For Sub Items         
    }

使用菜單項的特定名稱並更改其Visible屬性。

 private void toggleToolStripMenuItem_Click(object sender, EventArgs e)
    {
        if (shown)
            saveToolStripMenuItem.Visible = false;
        else
            saveToolStripMenuItem.Visible = true;
        shown = !shown;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM