이것은 기본적으로 제공되지 않습니다. 두 가지 선택이 있습니다. 첫 번째 옵션은 Draw Event을 덮어 쓰는 것으로 툴팁의 모양을 사용자 정의 할 수 있습니다. 여기에 an example of this입니다. 이 방법을 사용하는 경우 속성을 true
으로 설정해야합니다.
몇 가지 간단한 사용자 정의가 필요한 경우 첫 번째 방법이 작동하지만 두 번째 옵션은 더 유연한 옵션이 필요한 경우 가장 잘 작동합니다. 두 번째 옵션은 이미 제안한 것을 수행하고 자신의 종류의 툴팁을 만드는 것입니다. 간단히 말해서 MouseEnter event에 대한 이벤트 처리기를 먼저 만듭니다. 해당 이벤트가 발생하면 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;
}
}
물론 당신이 툴팁의 일부 아름답게을해야 할 것 :
당신이 그것을에있는 버튼과 타이머 형태가 있고 패널입니다 툴팁이 버튼을한다고 가정 , 그러나 이것이 일반적인 생각입니다!
WPF에서는 완전히 사용자 지정할 수있는 팝업 컨트롤을 사용할 수 있으므로이 작업은 간단합니다. – David
MouseEnter 및 MouseLeave에 핸들러를 추가하는 것이 좋다고 생각합니다. 쉬운 방법이 없다고 생각합니다. 이러한 종류의 메커니즘은 웹 애플리케이션 (자바 스크립트 사용)에 널리 사용됩니다.표준 방법을 원하면 ToolStripControlHost 또는 Goolge를 "C#의 사용자 지정 도구 설명"으로 검색해야한다고 생각합니다. 수많은 결과가 있습니다. 그러나 대부분은 ToolStripControlHost를 사용합니다. –
언급 한대로 두 번째 매개 변수가있는 자체 SetToolTip 메서드가 필요하면 .NET ToolTip에서 상속 된 사용자 지정 ToolTip을 만듭니다. –