3

実行時にオーナー描画ツールチップを作成し、ポップアップ イベントでツールチップ ウィンドウのサイズを設定し、描画イベントでテキストを設定します。

public void NewLabel(string aText)
{
  ToolTip tt = new ToolTip();
  tt.Popup += new PopupEventHandler(tt_Popup);
  tt.Draw += new DrawToolTipEventHandler(tt_Draw);

  tt.BackColor = Color.White;
  tt.AutomaticDelay = 100;
  tt.AutoPopDelay = 35000;
  tt.IsBalloon = false;
  tt.OwnerDraw = true;
  tt.SetToolTip(aLabel, sToolTip); 
}

public void tt_Popup(object sender, PopupEventArgs e)
{
  e.ToolTipSize = new Size(e.ToolTipSize.Width + 300, e.ToolTipSize.Height + 200);
}

public void tt_Draw(object sender, DrawToolTipEventArgs e)
{
  e.DrawBackground();
  e.DrawBorder();
}

これは正常に動作しますが、問題は、ツールチップの描画イベントが画面の下部にあるコントロールによって発生した場合、ツールチップが標準のツールチップのように視覚領域に自動的に設定されないことです。

何か案が?

4

1 に答える 1

-2

ツールチップは、四角形が画面上にあることを確認し、必要に応じて Show の呼び出し中に既存のサイズを使用して移動します。これはポップアップの前に発生します。フレームワークは返されたツールチップのサイズを確認しますが、幅と高さを調整するために使用され、ウィンドウが収まらなくなった場合にウィンドウを再配置するために使用されます。

試したことはありませんが、ポップアップが画面に表示されないようにするには、ポップアップを自分で移動する必要があると思います。

于 2012-11-09T16:36:10.307 に答える