ToolStripMenuItemの親をどのようにして決定できますか?通常のMenuStripでは、Parentプロパティを使用するだけで済みますが、ToolStripMenuItemにはそのプロパティがないようです。私は、ToolStripMenuItemsのカップルを持っているToolStripDropDownButtonを持っていると私はそれらのプログラムの親を正確に指摘できるようにしたいと思います。ToolStripMenuItemの親を取得するには
10
A
答えて
13
3
ToolStripMenuItem t = (ToolStripMenuItem)sender;
ContextMenuStrip s = (ContextMenuStrip)t.Owner;
MessageBox.Show(s.SourceControl.Name);
0
ここでは、これが私の作品
private void ContextMenuStrip_Opening(object sender, CancelEventArgs e)
{
contextMenuStrip1.Tag = ((ContextMenuStrip)sender).OwnerItem;
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
ToolStripMenuItem senderItem = (ToolStripMenuItem)sender;
var ownerItem = (ToolStripMenuItem)((ContextMenuStrip)senderItem.Owner).Tag;
}
5
を探しているものです.....これを試してください:あなたは、このことから
ToolStripMenuItem menuItem = sender as ToolStripMenuItem;
ToolStrip toolStrip = menuItem.GetCurrentParent();
...ランダムなToolStripMenuItemから最上位レベルに移動する方法を工夫することができます:
public static class ToolStripItemExtension
{
public static ContextMenuStrip GetContextMenuStrip(this ToolStripItem item)
{
ToolStripItem itemCheck = item;
while (!(itemCheck.GetCurrentParent() is ContextMenuStrip) && itemCheck.GetCurrentParent() is ToolStripDropDown)
{
itemCheck = (itemCheck.GetCurrentParent() as ToolStripDropDown).OwnerItem;
}
return itemCheck.GetCurrentParent() as ContextMenuStrip;
}
}
関連する問題
[C# - MenuStripコードをToolStripに変換する]の複製が可能です。(http://stackoverflow.com/questions/4572381/c-convert-menustrip-code-to-toolstrip) –
['Owner'] (http://msdn.microsoft.com/en-us/library/system.windows.forms.toolstripitem.owner.aspx)、['OwnerItem'](http://msdn.microsoft.com/en-us/)ライブラリ/ system.windows.forms.toolstripitem.owneritem.aspx)、および['Parent'](http://msdn.microsoft.com/en-us/library/system.windows.forms.toolstripitem.parent.aspx) ['ToolStripMenuItem'クラス]によって公開されるプロパティ(http://msdn.microsoft.com/en-us/library/system.windows.forms.toolstripmenuitem.aspx)を参照してください。これらのどれもあなたのために働きませんか?あなたが達成しようとしていることとなぜそれが機能していないのかを理解することは難しいです。 –
@ハンス、それは重複しているのではなく、問題の根本に到達するより正確な質問です。そしてその質問は私をどこにも与えてくれませんでした。あなたが成功しなくてもそれに答えようとしたとしても、あなたの答えは削除されました。 – user