これはそのままでは不可能です。選択肢は 2 つあります。最初のオプションはDraw Eventをオーバーライドすることです。これにより、ツールチップの外観をカスタマイズできます。この例を次に示します。このメソッドを使用する場合は、 OwnerDrawプロパティを に設定してください。true
簡単なカスタマイズが必要な場合は最初の方法が有効ですが、より柔軟なオプションが必要な場合は 2 番目の方法が最適です。2 番目のオプションは、既に提案したことを実行して、独自の種類のツールチップを作成することです。簡単に言うと、最初にMouseEnter イベントのイベント ハンドラーを作成します。そのイベントが発生したら、 Timerを有効にします。このタイマーは、ツールチップが表示される前に発生する遅延です。最後に、パネルをマウス座標に表示するだけです。
ボタンとタイマーを備えたフォームがあり、ボタンにパネルであるツールチップを持たせたいとします。
public partial class Form1 : Form
{
private Panel _myToolTipPanel;
private void Form1_Load(object sender, EventArgs e)
{
_myToolTipPanel = new Panel {Visible = false};
Controls.Add(_myToolTipPanel);
Label myLabel = new Label();
myLabel.Text = "Testing";
_myToolTipPanel.Controls.Add(myLabel);
}
private void button1_MouseEnter(object sender, EventArgs e)
{
timer1.Enabled = true;
}
private void button1_MouseLeave(object sender, EventArgs e)
{
timer1.Enabled = false;
_myToolTipPanel.Visible = false;
}
private void timer1_Tick(object sender, EventArgs e)
{
timer1.Enabled = false;
Point position = Cursor.Position;
Point formPoisition = PointToClient(position);
_myToolTipPanel.Visible = true;
_myToolTipPanel.Location = formPoisition;
}
}
もちろん、ツールチップを美しくする必要がありますが、これが一般的な考え方です。