Je souhaite modifier l'image d'arrière-plan en fonction des événements mouseenter et mouseleave pour obtenir un effet de survol des boutons. Quel est le moyen le plus simple d'y parvenir (de préférence de manière à ce que le bouton puisse être hérité)?Effet de la souris sur le bouton en C# (avec Visual Studio 05)
0
A
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");
}
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
- 1. Comment ouvrir le menu du bouton rouge sur Visual Studio (2008) avec le clavier?
- 2. Comment détecter la souris en bougeant le bouton gauche
- 3. Glisser-déposer avec le bouton droit de la souris wpf
- 4. Naviguer en arrière et en avant avec la souris dans Visual Studio 2008
- 5. QListView clique sur le bouton de la souris
- 6. Comment détecter le clic droit de la souris tout en appuyant sur le bouton gauche de la souris dans IE?
- 7. Fermer l'onglet sur le contrôle de l'onglet winforms avec le bouton du milieu de la souris
- 8. Basculer Visual Studio en C#?
- 9. Comment implémenter le déplacement de la souris dans Visual Basic?
- 10. Création de DLL C++ avec Visual Studio
- 11. Cliquez avec le bouton droit de la souris sur les onglets de feuille désactivés dans Excel
- 12. Bouton de la souris dans ToolStripMenuItem
- 13. Vue ouverte avec effet de bas en haut sur l'iPhone
- 14. C++ - Visual Studio CRT
- 15. Une DLL C++ compilée avec Visual Studio 2008 peut-elle être utilisée avec Visual Studio 2005?
- 16. Effet de la coulée à int en C#
- 17. Le débogueur C++ de Visual Studio 2005 continue de fonctionner dans la vue de désassemblage
- 18. Visual Studio 2008 n'affiche pas le bouton Evénements dans Asp.NET
- 19. Visual Studio (C++) IntelliSense avec des parenthèses
- 20. Erreurs Visual Studio débogage en C++
- 21. Attribuer des boutons de souris dans Visual Studio 2008
- 22. Visual Studio, Intel Visual Fortran et Visual C/C++ compilation en langage mixte
- 23. Obtenir la position/le bouton de la souris sur l'événement DoubleClick
- 24. popups mini-écran sur la souris sur
- 25. Sql 05 studio de gestion express versus standard
- 26. Problème avec le débogueur Visual Studio 2008
- 27. Réduire le délai lorsque vous passez la souris sur le panneau/les barres d'outils Masquer automatiquement dans Visual Studio '08
- 28. Comment puis-je changer la couleur d'un bouton de lien généré dynamiquement sur le curseur de la souris avec JavaScript?
- 29. Cliquez avec le bouton droit de la souris pour sélectionner une ligne datagridview
- 30. Problèmes C++ Visual Studio 2008
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. –