ToolTip
마우스로 마우스를 가져 가면 표시 할 컨트롤이 있습니다. 어떻게해야합니까? 코드 에서뿐만 아니라 디자이너 에서도이 작업을 올바르게 수행하는 방법을 알고 싶습니다 ( ToolTip
도구 상자에 구성 요소가 있지만 확실하지는 않습니다.)
이것이 중복 되어도 놀랍지 않지만 고급 시나리오에 관한 질문 만 찾을 수 있습니다. 기본을 알고 싶습니다.
답변
코드로 작성하는 기사는 다음과 같습니다.
private void Form1_Load(object sender, System.EventArgs e)
{
// Create the ToolTip and associate with the Form container.
ToolTip toolTip1 = new ToolTip();
// Set up the delays for the ToolTip.
toolTip1.AutoPopDelay = 5000;
toolTip1.InitialDelay = 1000;
toolTip1.ReshowDelay = 500;
// Force the ToolTip text to be displayed whether or not the form is active.
toolTip1.ShowAlways = true;
// Set up the ToolTip text for the Button and Checkbox.
toolTip1.SetToolTip(this.button1, "My button1");
toolTip1.SetToolTip(this.checkBox1, "My checkBox1");
}
답변
툴팁 컨트롤을 툴박스에서 폼으로 드래그합니다. 실제로 이름 이외의 속성을 지정할 필요는 없습니다. 그런 다음 툴팁을 사용하려는 컨트롤의 속성에서 방금 추가 한 툴팁 컨트롤의 이름으로 새 속성을 찾으십시오. 커서가 컨트롤을 가리키면 기본적으로 툴팁이 표시됩니다.
답변
- 양식에 툴팁 구성 요소 추가
- 툴팁을 원하는 컨트롤 중 하나를 선택하십시오.
- 속성 표 ( F4)를 열면 목록에 “toolTip1의 ToolTip”(또는 이와 유사한 것)이라는 속성이 있습니다. 해당 속성에서 원하는 툴팁 텍스트를 설정하십시오.
- 다른 컨트롤에 대해 2-3 반복
- 끝난.
여기서 유용한 요점은 ToolTip 컨트롤이 익스텐더 컨트롤 이므로 폼의 다른 컨트롤 에 대한 속성 집합을 확장한다는 것입니다 . 뒤에서 이것은 Svetlozar의 답변과 같은 코드를 생성하여 달성됩니다. 같은 방식으로 작동하는 다른 컨트롤이 있습니다 (예 🙂 HelpProvider
.
답변
C #의 툴팁은 거의 모든 UI 컨트롤에 쉽게 추가 할 수 있습니다. 이를 위해 MouseHover 이벤트를 추가 할 필요가 없습니다.
이 작업을 수행하는 방법입니다.
-
도구 설명 개체를 폼에 추가하십시오. 하나의 개체로 전체 양식에 충분합니다.
ToolTip toolTip = new ToolTip();
-
원하는 텍스트로 툴팁에 컨트롤을 추가하십시오.
toolTip.SetToolTip(Button1,"Click here");
답변
나는 이것을 이렇게했다 : 그냥 컨트롤에 이벤트를 추가하고 컨트롤의 태그를 설정하고 적절한 컨트롤 / 태그에 대한 툴팁을 처리하기위한 조건을 추가하십시오.
private void Info_MouseHover(object sender, EventArgs e)
{
Control senderObject = sender as Control;
string hoveredControl = senderObject.Tag.ToString();
// only instantiate a tooltip if the control's tag contains data
if (hoveredControl != "")
{
ToolTip info = new ToolTip
{
AutomaticDelay = 500
};
string tooltipMessage = string.Empty;
// add all conditionals here to modify message based on the tag
// of the hovered control
if (hoveredControl == "save button")
{
tooltipMessage = "This button will save stuff.";
}
info.SetToolTip(senderObject, tooltipMessage);
}
}
답변
컨트롤의 ToolTipTextNeeded 이벤트에 가입하고 훨씬 간단한 e.TooltipText를 반환하십시오.