2011-11-25 55 views
6

Tôi đang làm việc trên một dự án trong C# bằng cách sử dụng các hình thức cửa sổ. tôi và nhóm mà tôi muốn tạo ra để khi người dùng di chuột qua hình ảnh, trong trường hợp của chúng tôi là một thẻ, hình ảnh lớn hơn của thẻ đó xuất hiện bên cạnh mũi tên chuột, giống như một mẹo công cụ sẽ hoạt động. Tôi không nghĩ rằng bạn có thể sử dụng mẹo công cụ để làm điều này tôi đã thử tìm kiếm ở mọi nơi, bất kỳ lời khuyên hoặc ví dụ nào sẽ là tuyệt vời cảm ơn bạn rất nhiềuhình ảnh hiển thị khi di chuột qua cửa sổ?

Trả lời

7

Bạn có thể muốn xem xét điều này Code Project Article

Nó cho bạn thấy làm thế nào để tạo ra một ToolTip OwnerDrawn với một hình ảnh.

+0

1 @MarkHall lớn mẹo! –

2

Một cách đơn giản để làm là ẩn/hiển thị hộp ảnh tại vị trí được chỉ định. Một phương pháp khác là tải & vẽ (sơn) một hình ảnh bằng cách sử dụng GDI API.

4

Cảm ơn bạn đã trả lời tất cả mọi thứ đã tìm ra. Những gì tôi muốn làm là khi tôi moused trên một khu vực nhất định một hình ảnh khác nhau cho khu vực đó sẽ bật lên trong cùng một cách mà một công cụ tip đã làm. Vì vậy, sau một số nghiên cứu, tôi đã tìm ra cách tạo lớp mẹo công cụ của riêng mình.

đây là một ví dụ.

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(); 
    } 
} 

}

Các vấn đề liên quan