この関数を複数回呼び出すと、次のことが可能になります:
void Func(String spr, PictureBox pictureBox)
{
ToolTip toolTip = new ToolTip();
toolTip.Show(spr, pictureBox, 1000);
}
メモリリークが発生しますか?
関数が終了した後、ツールチップはまだ範囲外に出て自分自身を処分している可能性さえありますか?
最初の質問に対する答えが「はい」の場合、timer_tick から自己処理する独自のツールチップを作成することは良い解決策ですか?
public partial class MyToolTip : ToolTip
{
public MyToolTip()
{
InitializeComponent();
timer.Interval = this.AutomaticDelay;
}
private void timer_Tick(object sender, EventArgs e)
{
this.Dispose();
}
}
この場合、これが必要ない場合、オブジェクトの寿命がわかっている他の場合に適用できますか、それとも設計が悪いだけですか?
同時に多くのツールチップを表示できるようにしたいので、このソリューションを選択しました。