2

menuStrip1 項目の visible プロパティを false に設定しました。

foreach (ToolStripMenuItem itm in menuStrip1.Items)
{
    itm.Visible = false;
}

toolStripMenuItem and dropDownItemこれで、menustrip1の名前がわかりました。必要な をアクティベートする方法を教えてtoolStripMenuItem and dropDownItemください。

私は持っている

string mnItm = "SalesToolStripMenuItem";
string ddItm = "invoiceToolStripMenuItem";

toolStripMenuItem and dropDownItemここで、これら 2 つの ( ) アイテムに visible true を設定します。どうやってやるの?私はそれらの名前だけを知っています。

4

6 に答える 6

6

これらの名前を使用して、インデクサーitem経由で実際のものを取得します。MenuStrip.Items

ToolStripMenuItem menuItem = menuStrip1.Items[mnItm] as ToolStripMenuItem;
ToolStripDropDownMenu ddItem = menuStrip1.Items[ddItm] as ToolStripDropDownMenu;
于 2013-09-24T06:31:51.757 に答える
5

ToolStripItemCollection.Findメソッドを探しています。

var items = menustrip.Items.Find("SalesToolStripMenuItem", true);
foreach(var item in items)
{
    item.Visible = false;
}

2 番目のパラメーターは、子を検索するかどうかを示します。

于 2013-09-24T06:57:06.377 に答える
5

使用できます

menuStrip1.Items[mnItm].Visible = true;
menuStrip1.Items[ddItm].Visible = true;

または、Visible を複数のツールストリップ アイテムに設定する場合:

string [] visibleItems = new [] {"SalesToolStripMenuItem", "invoiceToolStripMenuItem"};
foreach (ToolStripMenuItem item in menuStrip1.Items)
{
     if (visibleItems.Contains(item.Name))
     { 
        item.Visible = false;
     }
}

それが役に立てば幸い

于 2013-09-24T07:00:47.787 に答える
3

次のようなことを試してみてください。

string strControlVal ="somecontrol"; //"SalesToolStripMenuItem" or "invoiceToolStripMenuItem" in your case
foreach (ToolStripMenuItem item in menuStrip1.Items)
{
     if (strControlVal == item.Name)
     { 
        item.Visible = false;
     }
}

strControlVal必要に応じて、独自の裁量で文字列を初期化します。

于 2013-09-24T06:21:54.743 に答える
1

あなたの質問を受け取った場合、上記の 2 つのツールストリップ項目以外を無効にしようとしています。メニュー項目の名前を知っているので、コードを少し変更するだけでうまくいく可能性があります

  foreach (ToolStripMenuItem itm in menuStrip1.Items)
    {
       if(itm.Text !="SalesToolStripMenuItem" || itm.Text !="invoiceToolStripMenuItem")
        {
         itm.Visible = false;
        }
    }
于 2013-09-24T06:21:36.930 に答える
0
    private void ToolStripMenuItem_Click(object sender, EventArgs e)
    {
        string MenuItemName = sender.ToString()
    }
于 2015-06-23T14:50:46.867 に答える