2012-10-23 2 views
1

이 가능한 중복은 :
create custom tooltip C#만들기 텍스트 팝업

사람은 상자 '팝업'이상 사용자가 커서를 만들 수있는 방법을 알고 있나요 특정 항목?

예를 들어, C# 양식 응용 프로그램에 PictureBox가 있고 사용자가 그 위에 커서를 놓으면 텍스트 상자가 나타납니다.

나는 더 많은 사용자 정의 가능한 것을 생각하고 있었지만 ToolTip을 알고 있습니다. 내 마음 속에서는 World of Warcraft에서 인벤토리의 항목 위로 커서를 가져 가면 나타나는 팝업 상자를 생각하고 있습니다 (분명히 화려하지 않아도되지만 텍스트 색상, 배경 색상, 텍스트 등은 모두 수정 가능).

+0

예를 추가 할 것 – Prix

답변

0

나는 버튼 또는 다음 MouseHover 동작 같은 것을 추가 할 수있는 이미지 버튼을 사용하면 툴팁을 사용자 정의해야

private void button1_MouseHover(object sender, System.EventArgs e) 
{ 
MessageBox.Show("yourmessage"); 

} 
3

ToolStripControlHost을 사용하여 컨트롤 (예 : 패널)을 호스팅하고 원하는 콘텐츠를 추가 할 수 있습니다. 그런 다음 해당 컨트롤을 Items 컬렉션을 사용하여 ToolStripDropDown에 추가하고 Show(Control,Point) 메서드를 사용하여 컨트롤을 표시합니다.


생각 나는 입/출력 작업을 통해 마우스의 표시/숨기기를 사용하여, 당신은 그렇게 다른 형태를 사용할 수

public class Form1 { 
    public Form1() { 
     ToolStripDropDown customToolTip = new ToolStripDropDown(); 
     customToolTip.Items.Add(new CustomPopupControl("Hello", "world")); 
     MouseMove += (o, e) => { 
      Point location = e.Location; 
      location.Offset(0, 16); 
      customToolTip.Show(this, location); 
     }; 
    } 

    class CustomPopupControl : ToolStripControlHost { 
     public CustomPopupControl(string title, string message) 
      : base(new Panel()) { 
      Label titleLabel = new Label(); 
      titleLabel.BackColor = SystemColors.Control; 
      titleLabel.Text = title; 
      titleLabel.Dock = DockStyle.Top; 

      Label messageLabel = new Label(); 
      messageLabel.BackColor = SystemColors.ControlLightLight; 
      messageLabel.Text = message; 
      messageLabel.Dock = DockStyle.Fill; 

      Control.MinimumSize = new Size(90, 64); 
      Control.Controls.Add(messageLabel); 
      Control.Controls.Add(titleLabel); 
     } 
    } 
}