2017-02-03 11 views
-2

私のmenuItem内のアイテムのコレクション内の各グループを、プログラムでセパレータで区切りたいと思います。グループMenuItemのアイテム

私はthis.myMenuItem.Items.Add(new ToolStripSeparator());を使用することができますが、これは私のためのオプションではありません。myMenuItemのコンテンツはオンザフライで作成されているため、たとえば空のグループになる可能性があります。したがって、それらの間にアイテムのない2つのToolStripSeparatorsがあります。

この例のように。 conditionAがfalseまたはcondition1AconditionA2がfalseの場合、2つの連続した区切り文字が表示されます。
もし私がmyMenuItem.Items.Add(new ToolStripSeparator());を最初のネストされたifの中に移動すると、私は同じグループの中にセパレータを得ることができます。 MenuItemには、我々は、セパレータを必要とするかどうか、このアイテムを置くと場所を決定することができますので、私は、動的に作成されたアイテムを使用することができます(タグ、当社グループのオプションのような)簡単な方法があるかどう

// Add group A of items 
myMenuItem.Items.Add(new ToolStripSeparator()); 
If(conditionA) 
{ 
    If(conditionA1) 
     myMenuItem.Items.Add("group A: item 1"); 
    If(conditionA2) 
     myMenuItem.Items.Add("group A: item 2"); 
} 
// Add group B of items 
myMenuItem.Items.Add(new ToolStripSeparator()); 
If(conditionB) 
{ 
    If(conditionB1) 
     myMenuItem.Items.Add("group B: item 1"); 
    If(conditionB2) 
     myMenuItem.Items.Add("group B: item 2"); 
} 
// Add group C of items 
myMenuItem.Items.Add(new ToolStripSeparator()); 
If(conditionC) 
{ 
    If(conditionC1) 
     myMenuItem.Items.Add("group C: item 1"); 
    If(conditionC2) 
     myMenuItem.Items.Add("group C: item 2"); 
} 

は私が放浪しています。 条件を組み合わせたり、追加したアイテムを数えることができるので、セパレータを追加するかどうかを決めることができますが、追加されるItemを追加するかどうかは、追加されたItemにすることです。だから、Itemを起動するときに、セパレータを追加する必要があるかどうかはわかりません。

私はWindows.Forms.ToolStripMenuItemコントロールを使用しています。

+1

どのように空のグループになりますか?メニュー項目を追加するコードを表示します。 – LarsTech

+0

@LarsTech私はコード – Mhd

+0

の例を提供しました。いいえ、デフォルトでは魔法のようにセパレータを追加する組み込みメソッドはありません。区切り文字を追加または挿入する方法では、条件を調べたり、追加された項目などを数えたりする必要があります。投稿された回答はその方法の1つです。それを避けてください。 – LarsTech

答えて

0

最も簡単な変更は、そのグループに項目を追加しようとしている場合のみ、グループ用セパレータを追加するには、次のようになります。

// Add group A of items 
If(conditionA) 
{ 
    if(conditionA1 || conditionA2) 
     myMenuItem.Items.Add(new ToolStripSeparator()); 
    If(conditionA1) 
     myMenuItem.Items.Add("group A: item 1"); 
    If(conditionA2) 
     myMenuItem.Items.Add("group A: item 2"); 
} 
// Add group B of items 
If(conditionB) 
{ 
    if(conditionB1 || conditionB2) 
     myMenuItem.Items.Add(new ToolStripSeparator()); 
    If(conditionB1) 
     myMenuItem.Items.Add("group B: item 1"); 
    If(conditionB2) 
     myMenuItem.Items.Add("group B: item 2"); 
} 
// Add group C of items 
If(conditionC) 
{ 
    if(conditionC1 || conditionC2) 
     myMenuItem.Items.Add(new ToolStripSeparator()); 
    If(conditionC1) 
     myMenuItem.Items.Add("group C: item 1"); 
    If(conditionC2) 
     myMenuItem.Items.Add("group C: item 2"); 
} 
また、あなたどのように応じて、カスタムコントロールにこれをカプセル化することができ

それを使うつもりだ。

+0

私は条件を追加したり、グループに追加された各項目を数えることができますが、これを行う簡単な方法があるかどうかを尋ねています。 – Mhd

関連する問題