2009-07-18 5 views

Répondre

1
private void Form1_Leave(object sender, System.EventArgs e) 
{ 
this.BackgroundImage=Image.FromFile("file1");  
} 

private void Form1_MouseEnter(object sender, System.EventArgs e) 
{ 
this.BackgroundImage=Image.FromFile("file2"); 
}  
+0

merci beaucoup d'avoir montré comment charger des images à partir d'un fichier. Je suis nouveau à VC# donc je ne savais pas comment y parvenir. –

1

Vous pouvez créer une nouvelle classe, héritant de Button, et passer outre OnMouseEnter et OnMouseLeave. Donnez-lui une propriété afin que vous puissiez définir quelle image d'arrière-plan il devrait avoir quand la souris entre, et vous êtes prêt à partir.

exemple de travail complet (avec quelques attributs de soutien à temps de conception ajouté):

using System; 
using System.Drawing; 
using System.Windows.Forms; 
using System.ComponentModel; 

namespace WindowsFormsApplication1 
{ 
    class HighlightButton : Button 
    { 
     [Category("Appearance")] 
     [Description("The background image that the Button should have when the mouse is over a visible part of it.")] 
     public Image MouseoverBackgroundImage { get; set; } 
     // property to hold the original background image while the mouse-over 
     // image is displayed, so that we can restore it when the mouse leaves 
     protected Image OriginalBackgroundImage { get; set; } 

     protected override void OnMouseEnter(EventArgs e) 
     { 
      this.OriginalBackgroundImage = this.BackgroundImage; 
      this.BackgroundImage = this.MouseoverBackgroundImage; 
      base.OnMouseEnter(e); 
     } 

     protected override void OnMouseLeave(EventArgs e) 
     { 
      this.BackgroundImage = this.OriginalBackgroundImage; 
      base.OnMouseLeave(e); 
     } 
    } 
} 

Edit: a réalisé que mon échantillon initial a changé le BackColor, pas BackgroundImage. Corrigé cela.

Questions connexes