Windowsフォーム上でマウスオーバーで画像を表示しますか?

私はWindowsフォームを使用してC#でプロジェクトに取り組んでいます。 私と私が抱えるグループは、ユーザーがイメージ上にマウスを置いたとき、カードの場合、そのカードの大きなイメージがマウスの矢印の横に表示されますチップが機能します。 私はあなたがこれを行うにはツールチップを使用することはできないと思う私はどこでも見てみましたが、 どんなアドバイスや事例も大変ありがとうございます

6

3 答え

You may want to look at this Code Project Article

イメージ付きの OwnerDrawn ツールチップを作成する方法を示します。

7
追加された
+1 @MarkHall素晴らしいヒント!
追加された 著者 Jeremy Thompson,

私はすべての答えを考えてくれてありがとう。 私がしたかったのは、ある領域をマウスで操作したときに、その領域の別の画像がツールチップと同じようにポップアップするということでした。そこで、私はいくつかの研究の後、私自身のツールチップクラスを作成する方法を考え出しました。

ここに例があります。

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

}

4
追加された

A simple way to do is to hide/show a picture box at specified location. Another method is to load & draw (paint) an image using GDI API.

2
追加された