Savez-vous s'il est possible d'associer une image à un élément d'un menu
contextuel (genre le premier) ?
Après avoir regardé, je n'ai pas l'impression.... :o(
J'utilise le framework .Net 1.1.
Savez-vous s'il est possible d'associer une image à un élément d'un menu
contextuel (genre le premier) ?
Après avoir regardé, je n'ai pas l'impression.... :o(
J'utilise le framework .Net 1.1.
Savez-vous s'il est possible d'associer une image à un élément d'un menu
contextuel (genre le premier) ?
Après avoir regardé, je n'ai pas l'impression.... :o(
J'utilise le framework .Net 1.1.
Thierry wrote:Savez-vous s'il est possible d'associer une image à un élément d'un menu
contextuel (genre le premier) ?Après avoir regardé, je n'ai pas l'impression.... :o(
J'utilise le framework .Net 1.1.
Sous 1.1 jamais regardé mais dans la version 2005 beta2 oui c'est
possible.
--
Delf
Thierry wrote:
Savez-vous s'il est possible d'associer une image à un élément d'un menu
contextuel (genre le premier) ?
Après avoir regardé, je n'ai pas l'impression.... :o(
J'utilise le framework .Net 1.1.
Sous 1.1 jamais regardé mais dans la version 2005 beta2 oui c'est
possible.
--
Delf
Thierry wrote:Savez-vous s'il est possible d'associer une image à un élément d'un menu
contextuel (genre le premier) ?Après avoir regardé, je n'ai pas l'impression.... :o(
J'utilise le framework .Net 1.1.
Sous 1.1 jamais regardé mais dans la version 2005 beta2 oui c'est
possible.
--
Delf
Bonjour,
Savez-vous s'il est possible d'associer une image à un élément d'un menu
contextuel (genre le premier) ?
Après avoir regardé, je n'ai pas l'impression.... :o(
J'utilise le framework .Net 1.1.
Merci
Bonne journée
-Thierry-
Bonjour,
Savez-vous s'il est possible d'associer une image à un élément d'un menu
contextuel (genre le premier) ?
Après avoir regardé, je n'ai pas l'impression.... :o(
J'utilise le framework .Net 1.1.
Merci
Bonne journée
-Thierry-
Bonjour,
Savez-vous s'il est possible d'associer une image à un élément d'un menu
contextuel (genre le premier) ?
Après avoir regardé, je n'ai pas l'impression.... :o(
J'utilise le framework .Net 1.1.
Merci
Bonne journée
-Thierry-
Salut Thierry ! :O)
Tu dois les dessiner toi même en implémentant l'événement
MenuItemDrawItem.
Je t'ai fais un petit exemple. Ouvre un nouveau project de type
Application
Windows et colle ce code dedans :
//***
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace IconAndMenuItemProject
{
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.ContextMenu contextMenu1;
private System.Windows.Forms.MenuItem menuItem1;
private System.Windows.Forms.MenuItem menuItem2;
private System.Windows.Forms.MenuItem menuItem3;
private System.ComponentModel.Container components = null;
private Icon _icon;
public Form1()
{
InitializeComponent();
}
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Code généré par le Concepteur Windows Form
/// <summary>
/// Méthode requise pour la prise en charge du concepteur - ne modifiez
pas
/// le contenu de cette méthode avec l'éditeur de code.
/// </summary>
private void InitializeComponent()
{
this.contextMenu1 = new System.Windows.Forms.ContextMenu();
this.menuItem1 = new System.Windows.Forms.MenuItem();
this.menuItem2 = new System.Windows.Forms.MenuItem();
this.menuItem3 = new System.Windows.Forms.MenuItem();
//
// contextMenu1
//
this.contextMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[]
{
this.menuItem1,
this.menuItem2,
this.menuItem3});
//
// menuItem1
//
this.menuItem1.Index = 0;
this.menuItem1.Text = "MenuItem 1";
//
// menuItem2
//
this.menuItem2.Index = 1;
this.menuItem2.Text = "MenuItem 2";
//
// menuItem3
//
this.menuItem3.Index = 2;
this.menuItem3.Text = "MenuItem 3";
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(292, 266);
this.Name = "Form1";
this.Text = "Form1";
this.Load += new System.EventHandler(this.Form1_Load);
this.MouseUp += new
System.Windows.Forms.MouseEventHandler(this.Form1_MouseUp);
this.Closed += new System.EventHandler(this.Form1_Closed);
}
#endregion
/// <summary>
/// Point d'entrée principal de l'application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void Form1_Load(object sender, System.EventArgs e)
{
_icon = new Icon(new Icon(@"c:my_icon.ico"), new Size(16, 16));
InitMenuItems();
}
private void Form1_MouseUp(object sender,
System.Windows.Forms.MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
contextMenu1.Show(this, new Point(e.X, e.Y));
}
private void MenuItem_MeasureItem(object sender, MeasureItemEventArgs e)
{
SizeF size = e.Graphics.MeasureString(((MenuItem)sender).Text,
this.Font);
//largeur = icône (16 x 16) + texte
e.ItemWidth = (Int32)size.Width + _icon.Width;
e.ItemHeight = (Int32)size.Height;
}
private void MenuItem_DrawItem(object sender, DrawItemEventArgs e)
{
Brush backBrush;
Brush foreBrush;
// on test l'état modifie les couleurs en conséquence
if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)
{
backBrush = SystemBrushes.Highlight;
foreBrush = SystemBrushes.HighlightText;
}
else
{
backBrush = SystemBrushes.Menu;
foreBrush = SystemBrushes.ControlText;
}
// dessine le background
e.Graphics.FillRectangle(backBrush, e.Bounds);
// on test l'index et place une icône à l'index 0 et 2
if (e.Index == 0 || e.Index == 2)
e.Graphics.DrawIcon(_icon, e.Bounds.X, e.Bounds.Y);
// dessine le texte
e.Graphics.DrawString(((MenuItem)sender).Text, this.Font, foreBrush,
(Single)(e.Bounds.X + _icon.Width), (Single)e.Bounds.Y);
}
private void Form1_Closed(object sender, System.EventArgs e)
{
CleanUpMenuItems();
}
private void InitMenuItems()
{
foreach (MenuItem mi in contextMenu1.MenuItems)
{
mi.OwnerDraw = true;
mi.MeasureItem += new MeasureItemEventHandler(MenuItem_MeasureItem);
mi.DrawItem += new DrawItemEventHandler(MenuItem_DrawItem);
}
}
private void CleanUpMenuItems()
{
foreach (MenuItem mi in contextMenu1.MenuItems)
{
mi.MeasureItem -= new MeasureItemEventHandler(MenuItem_MeasureItem);
mi.DrawItem -= new DrawItemEventHandler(MenuItem_DrawItem);
}
}
}
}
//***
--
Cordialement
Yanick
MVP pour Visual Basic
"Thierry" a écrit dans le message de
news:Bonjour,
Savez-vous s'il est possible d'associer une image à un élément d'un menu
contextuel (genre le premier) ?
Après avoir regardé, je n'ai pas l'impression.... :o(
J'utilise le framework .Net 1.1.
Merci
Bonne journée
-Thierry-
Salut Thierry ! :O)
Tu dois les dessiner toi même en implémentant l'événement
MenuItemDrawItem.
Je t'ai fais un petit exemple. Ouvre un nouveau project de type
Application
Windows et colle ce code dedans :
//***
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace IconAndMenuItemProject
{
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.ContextMenu contextMenu1;
private System.Windows.Forms.MenuItem menuItem1;
private System.Windows.Forms.MenuItem menuItem2;
private System.Windows.Forms.MenuItem menuItem3;
private System.ComponentModel.Container components = null;
private Icon _icon;
public Form1()
{
InitializeComponent();
}
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Code généré par le Concepteur Windows Form
/// <summary>
/// Méthode requise pour la prise en charge du concepteur - ne modifiez
pas
/// le contenu de cette méthode avec l'éditeur de code.
/// </summary>
private void InitializeComponent()
{
this.contextMenu1 = new System.Windows.Forms.ContextMenu();
this.menuItem1 = new System.Windows.Forms.MenuItem();
this.menuItem2 = new System.Windows.Forms.MenuItem();
this.menuItem3 = new System.Windows.Forms.MenuItem();
//
// contextMenu1
//
this.contextMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[]
{
this.menuItem1,
this.menuItem2,
this.menuItem3});
//
// menuItem1
//
this.menuItem1.Index = 0;
this.menuItem1.Text = "MenuItem 1";
//
// menuItem2
//
this.menuItem2.Index = 1;
this.menuItem2.Text = "MenuItem 2";
//
// menuItem3
//
this.menuItem3.Index = 2;
this.menuItem3.Text = "MenuItem 3";
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(292, 266);
this.Name = "Form1";
this.Text = "Form1";
this.Load += new System.EventHandler(this.Form1_Load);
this.MouseUp += new
System.Windows.Forms.MouseEventHandler(this.Form1_MouseUp);
this.Closed += new System.EventHandler(this.Form1_Closed);
}
#endregion
/// <summary>
/// Point d'entrée principal de l'application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void Form1_Load(object sender, System.EventArgs e)
{
_icon = new Icon(new Icon(@"c:my_icon.ico"), new Size(16, 16));
InitMenuItems();
}
private void Form1_MouseUp(object sender,
System.Windows.Forms.MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
contextMenu1.Show(this, new Point(e.X, e.Y));
}
private void MenuItem_MeasureItem(object sender, MeasureItemEventArgs e)
{
SizeF size = e.Graphics.MeasureString(((MenuItem)sender).Text,
this.Font);
//largeur = icône (16 x 16) + texte
e.ItemWidth = (Int32)size.Width + _icon.Width;
e.ItemHeight = (Int32)size.Height;
}
private void MenuItem_DrawItem(object sender, DrawItemEventArgs e)
{
Brush backBrush;
Brush foreBrush;
// on test l'état modifie les couleurs en conséquence
if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)
{
backBrush = SystemBrushes.Highlight;
foreBrush = SystemBrushes.HighlightText;
}
else
{
backBrush = SystemBrushes.Menu;
foreBrush = SystemBrushes.ControlText;
}
// dessine le background
e.Graphics.FillRectangle(backBrush, e.Bounds);
// on test l'index et place une icône à l'index 0 et 2
if (e.Index == 0 || e.Index == 2)
e.Graphics.DrawIcon(_icon, e.Bounds.X, e.Bounds.Y);
// dessine le texte
e.Graphics.DrawString(((MenuItem)sender).Text, this.Font, foreBrush,
(Single)(e.Bounds.X + _icon.Width), (Single)e.Bounds.Y);
}
private void Form1_Closed(object sender, System.EventArgs e)
{
CleanUpMenuItems();
}
private void InitMenuItems()
{
foreach (MenuItem mi in contextMenu1.MenuItems)
{
mi.OwnerDraw = true;
mi.MeasureItem += new MeasureItemEventHandler(MenuItem_MeasureItem);
mi.DrawItem += new DrawItemEventHandler(MenuItem_DrawItem);
}
}
private void CleanUpMenuItems()
{
foreach (MenuItem mi in contextMenu1.MenuItems)
{
mi.MeasureItem -= new MeasureItemEventHandler(MenuItem_MeasureItem);
mi.DrawItem -= new DrawItemEventHandler(MenuItem_DrawItem);
}
}
}
}
//***
--
Cordialement
Yanick
MVP pour Visual Basic
"Thierry" <thierry@nospam.com> a écrit dans le message de
news:ew8R2LLcFHA.2420@TK2MSFTNGP12.phx.gbl...
Bonjour,
Savez-vous s'il est possible d'associer une image à un élément d'un menu
contextuel (genre le premier) ?
Après avoir regardé, je n'ai pas l'impression.... :o(
J'utilise le framework .Net 1.1.
Merci
Bonne journée
-Thierry-
Salut Thierry ! :O)
Tu dois les dessiner toi même en implémentant l'événement
MenuItemDrawItem.
Je t'ai fais un petit exemple. Ouvre un nouveau project de type
Application
Windows et colle ce code dedans :
//***
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace IconAndMenuItemProject
{
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.ContextMenu contextMenu1;
private System.Windows.Forms.MenuItem menuItem1;
private System.Windows.Forms.MenuItem menuItem2;
private System.Windows.Forms.MenuItem menuItem3;
private System.ComponentModel.Container components = null;
private Icon _icon;
public Form1()
{
InitializeComponent();
}
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Code généré par le Concepteur Windows Form
/// <summary>
/// Méthode requise pour la prise en charge du concepteur - ne modifiez
pas
/// le contenu de cette méthode avec l'éditeur de code.
/// </summary>
private void InitializeComponent()
{
this.contextMenu1 = new System.Windows.Forms.ContextMenu();
this.menuItem1 = new System.Windows.Forms.MenuItem();
this.menuItem2 = new System.Windows.Forms.MenuItem();
this.menuItem3 = new System.Windows.Forms.MenuItem();
//
// contextMenu1
//
this.contextMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[]
{
this.menuItem1,
this.menuItem2,
this.menuItem3});
//
// menuItem1
//
this.menuItem1.Index = 0;
this.menuItem1.Text = "MenuItem 1";
//
// menuItem2
//
this.menuItem2.Index = 1;
this.menuItem2.Text = "MenuItem 2";
//
// menuItem3
//
this.menuItem3.Index = 2;
this.menuItem3.Text = "MenuItem 3";
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(292, 266);
this.Name = "Form1";
this.Text = "Form1";
this.Load += new System.EventHandler(this.Form1_Load);
this.MouseUp += new
System.Windows.Forms.MouseEventHandler(this.Form1_MouseUp);
this.Closed += new System.EventHandler(this.Form1_Closed);
}
#endregion
/// <summary>
/// Point d'entrée principal de l'application.
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void Form1_Load(object sender, System.EventArgs e)
{
_icon = new Icon(new Icon(@"c:my_icon.ico"), new Size(16, 16));
InitMenuItems();
}
private void Form1_MouseUp(object sender,
System.Windows.Forms.MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
contextMenu1.Show(this, new Point(e.X, e.Y));
}
private void MenuItem_MeasureItem(object sender, MeasureItemEventArgs e)
{
SizeF size = e.Graphics.MeasureString(((MenuItem)sender).Text,
this.Font);
//largeur = icône (16 x 16) + texte
e.ItemWidth = (Int32)size.Width + _icon.Width;
e.ItemHeight = (Int32)size.Height;
}
private void MenuItem_DrawItem(object sender, DrawItemEventArgs e)
{
Brush backBrush;
Brush foreBrush;
// on test l'état modifie les couleurs en conséquence
if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)
{
backBrush = SystemBrushes.Highlight;
foreBrush = SystemBrushes.HighlightText;
}
else
{
backBrush = SystemBrushes.Menu;
foreBrush = SystemBrushes.ControlText;
}
// dessine le background
e.Graphics.FillRectangle(backBrush, e.Bounds);
// on test l'index et place une icône à l'index 0 et 2
if (e.Index == 0 || e.Index == 2)
e.Graphics.DrawIcon(_icon, e.Bounds.X, e.Bounds.Y);
// dessine le texte
e.Graphics.DrawString(((MenuItem)sender).Text, this.Font, foreBrush,
(Single)(e.Bounds.X + _icon.Width), (Single)e.Bounds.Y);
}
private void Form1_Closed(object sender, System.EventArgs e)
{
CleanUpMenuItems();
}
private void InitMenuItems()
{
foreach (MenuItem mi in contextMenu1.MenuItems)
{
mi.OwnerDraw = true;
mi.MeasureItem += new MeasureItemEventHandler(MenuItem_MeasureItem);
mi.DrawItem += new DrawItemEventHandler(MenuItem_DrawItem);
}
}
private void CleanUpMenuItems()
{
foreach (MenuItem mi in contextMenu1.MenuItems)
{
mi.MeasureItem -= new MeasureItemEventHandler(MenuItem_MeasureItem);
mi.DrawItem -= new DrawItemEventHandler(MenuItem_DrawItem);
}
}
}
}
//***
--
Cordialement
Yanick
MVP pour Visual Basic
"Thierry" a écrit dans le message de
news:Bonjour,
Savez-vous s'il est possible d'associer une image à un élément d'un menu
contextuel (genre le premier) ?
Après avoir regardé, je n'ai pas l'impression.... :o(
J'utilise le framework .Net 1.1.
Merci
Bonne journée
-Thierry-