[C#] 컨트롤에 툴팁을 어떻게 추가합니까?

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");
}


답변

툴팁 컨트롤을 툴박스에서 폼으로 드래그합니다. 실제로 이름 이외의 속성을 지정할 필요는 없습니다. 그런 다음 툴팁을 사용하려는 컨트롤의 속성에서 방금 추가 한 툴팁 컨트롤의 이름으로 새 속성을 찾으십시오. 커서가 컨트롤을 가리키면 기본적으로 툴팁이 표시됩니다.


답변

  1. 양식에 툴팁 구성 요소 추가
  2. 툴팁을 원하는 컨트롤 중 하나를 선택하십시오.
  3. 속성 표 ( F4)를 열면 목록에 “toolTip1의 ToolTip”(또는 이와 유사한 것)이라는 속성이 있습니다. 해당 속성에서 원하는 툴팁 텍스트를 설정하십시오.
  4. 다른 컨트롤에 대해 2-3 반복
  5. 끝난.

여기서 유용한 요점은 ToolTip 컨트롤이 익스텐더 컨트롤 이므로 폼의 다른 컨트롤 에 대한 속성 집합을 확장한다는 것입니다 . 뒤에서 이것은 Svetlozar의 답변과 같은 코드를 생성하여 달성됩니다. 같은 방식으로 작동하는 다른 컨트롤이 있습니다 (예 🙂 HelpProvider.


답변

C #의 툴팁은 거의 모든 UI 컨트롤에 쉽게 추가 할 수 있습니다. 이를 위해 MouseHover 이벤트를 추가 할 필요가 없습니다.

이 작업을 수행하는 방법입니다.

  1. 도구 설명 개체를 폼에 추가하십시오. 하나의 개체로 전체 양식에 충분합니다.
    ToolTip toolTip = new ToolTip();

  2. 원하는 텍스트로 툴팁에 컨트롤을 추가하십시오.

    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를 반환하십시오.


답변