atmeitsatme
, oui bien sûr c'est ce que j'ai fais plus haut mais j'ai commenté la ligne car ce que je veux c'est utiliser mon ImageList.
...
En fait le 'Owner' est de type ToolStripDropDownMenu apparemment si j'ai bien compris il est généré implicitement par la méthode CreateDefaultDropDown au moment de l'insertion des items dans la propriété DropDownItems. Si on le créer explicitement ont peut lui assigner l'ImageList et ça marche. Ca fait quand même pas mal de code et en mémoire ça doit être assez lourd tous ces ToolStripMachin..
private void InitializeForm( )
{
this.SuspendLayout( );
// ImageList
imageList = new ImageList( );
imageList.ImageSize = new Size( 32, 32 );
imageList.ColorDepth = ColorDepth.Depth24Bit;
imageList.TransparentColor = Color.Magenta;
imageList.Images.Add( "Scan", new Bitmap( "Scan.bmp" ) );
ToolStripMenuItem scanItem = new ToolStripMenuItem( );
scanItem.Text = "&Scan Network";
scanItem.ImageKey = "Scan";
scanItem.ShortcutKeys = Keys.Control | Keys.F5;
scanItem.Click += delegate { MessageBox.Show( "Scanning.. "); };
ToolStripMenuItem exitItem = new ToolStripMenuItem( );
exitItem.Text = "E&xit";
exitItem.ShortcutKeys = Keys.Alt | Keys.F4;
exitItem.Click += delegate { this.Close( ); };
ToolStripDropDownMenu dropDown = new ToolStripDropDownMenu( );
dropDown.ImageList = imageList;
dropDown.Items.AddRange
(
new ToolStripItem[ ]
{
scanItem,
new ToolStripSeparator( ),
exitItem
}
);
ToolStripMenuItem networkItem = new ToolStripMenuItem( );
networkItem.Text = "&Network";
networkItem.DropDown = dropDown;
MenuStrip menuStrip = new MenuStrip( );
menuStrip.ImageList = imageList;
menuStrip.Items.Add( networkItem );
this.MainMenuStrip = menuStrip;
this.Controls.Add( menuStrip );
this.ResumeLayout( );
}