J'ai un ToolStripSplitButton avec divers éléments dans la liste déroulante. L'un d'entre eux est une barre de contrôle incluse dans un ToolStripControlHost, appelé ToolStripTrackbarItem. Il est le code (je l'ai de stackoverflow):Afficher l'image pour ToolStripControlHost dans le menu déroulant
using System;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
using System.Windows.Forms.Design;
namespace Application
{
[System.ComponentModel.DesignerCategory("code")]
[System.Windows.Forms.Design.ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.ContextMenuStrip | ToolStripItemDesignerAvailability.MenuStrip)]
public class ToolStripTrackbarItem : ToolStripControlHost
{
public ToolStripTrackbarItem()
: base(CreateControlInstance())
{
this.Size = Control.Size;
}
public TrackBar TrackBar
{
get { return Control as TrackBar; }
}
private static Control CreateControlInstance()
{
TrackBar t = new TrackBar();
t.AutoSize = false;
return t;
}
[DefaultValue(0)]
public int Value
{
get { return TrackBar.Value; }
set { TrackBar.Value = value; }
}
protected override void OnSubscribeControlEvents(Control control)
{
base.OnSubscribeControlEvents(control);
TrackBar trackBar = control as TrackBar;
trackBar.ValueChanged += new EventHandler(trackBar_ValueChanged);
}
protected override void OnUnsubscribeControlEvents(Control control)
{
base.OnUnsubscribeControlEvents(control);
TrackBar trackBar = control as TrackBar;
trackBar.ValueChanged -= new EventHandler(trackBar_ValueChanged);
}
void trackBar_ValueChanged(object sender, EventArgs e)
{
if (this.ValueChanged != null)
ValueChanged(sender, e);
}
public event EventHandler ValueChanged;
protected override Size DefaultSize
{
get { return new Size(300, 16); }
}
}
Il fonctionne, mais je dois montrer des images à la gauche des éléments de liste déroulante:
je réussis avec un ToolStripMenuItem simple en définissant la propriété Image. Cependant, il est inefficace de définir la propriété Image de mon ToolStripTrackbarItem (héritée de ToolStripControlHost, voir le code ci-dessus). Selon MSDN, la propriété Image n'est pas pertinente pour ToolStripControlHost.
Qu'est-ce que cela signifie? N'est-il même pas possible d'inclure une image à ToolStripControlHost?
Si c'est possible quand même, comment faire?