2011-11-25 8 views
6

Pracuję nad projektem w języku C# przy użyciu formularzy systemu Windows. Ja i grupa, w której jestem, chcę, aby tak było, gdy użytkownik najedzie myszą na obraz, w naszym przypadku kartę, że większy obraz tej karty pojawi się obok strzałki myszy, w podobny sposób jak wskazówka narzędzia będzie działać. Nie sądzę, aby można było użyć podpowiedzi do tego, co próbowałem szukać wszędzie, każda rada lub przykłady byłyby wspaniałe, bardzo dziękujęwyświetlać obraz po najechaniu myszą w postaci okna?

Odpowiedz

2

Prosty sposób na ukrycie/pokazanie ramki graficznej w określonej lokalizacji. Inną metodą jest załadowanie obrazu (&) za pomocą interfejsu API GDI.

4

Dzięki za odpowiedzi mam wszystko wymyślone. To, co chciałem zrobić, to gdy przesuwałem się nad określonym obszarem, inny obrazek dla tego obszaru wyskoczyłby w taki sam sposób, jak zrobił to napiwek. Po kilku badaniach odkryłem, jak utworzyć własną klasę końcówek narzędzi.

Oto przykład.

public partial class Form1 : Form 
{ 

    public Form1() 
    { 
     InitializeComponent(); 

     CustomToolTip tip = new CustomToolTip(); 
     tip.SetToolTip(button1, "text"); 
     tip.SetToolTip(button2, "writing"); 
     button1.Tag = Properties.Resources.pelican; // pull image from the resources file 
     button2.Tag = Properties.Resources.pelican2;  
    } 
} 

class CustomToolTip : ToolTip 
{ 
    public CustomToolTip() 
    { 
     this.OwnerDraw = true; 
     this.Popup += new PopupEventHandler(this.OnPopup); 
     this.Draw +=new DrawToolTipEventHandler(this.OnDraw); 
    } 

    private void OnPopup(object sender, PopupEventArgs e) // use this event to set the size of the tool tip 
    { 
     e.ToolTipSize = new Size(600, 1000); 
    } 

    private void OnDraw(object sender, DrawToolTipEventArgs e) // use this to customzie the tool tip 
    { 
     Graphics g = e.Graphics; 

     // to set the tag for each button or object 
     Control parent = e.AssociatedControl; 
     Image pelican = parent.Tag as Image; 

     //create your own custom brush to fill the background with the image 
     TextureBrush b = new TextureBrush(new Bitmap(pelican));// get the image from Tag 

     g.FillRectangle(b, e.Bounds); 
     b.Dispose(); 
    } 
} 

}

Powiązane problemy