web-dev-qa-db-ja.com

ツールチップをコントロールに追加するにはどうすればよいですか?

マウスがホバーしているときにToolTipを表示したいコントロールがいくつかあります。これどうやってするの?これをコードで適切に行う方法を知りたいのですが、デザイナーでも同様です(ツールボックスにはToolTipコンポーネントがありますが、わかりません)。

これが重複していても驚かないでしょうが、より高度で特定のシナリオに関する質問しか見つけることができません。基本を知りたいです。

149
Svish

ここ はコードでそれを行うための記事です

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

ツールボックスからフォームにツールチップコントロールをドラッグします。名前以外のプロパティを指定する必要はありません。次に、ツールチップをオンにするコントロールのプロパティで、追加したツールチップコントロールの名前を持つ新しいプロパティを探します。デフォルトでは、カーソルがコントロールをホバーするとツールチップが表示されます。

137
JYelton
  1. ToolTipコンポーネントをフォームに追加します
  2. ツールチップが必要なコントロールのいずれかを選択します
  3. プロパティグリッドを開きます(F4)、リストに「toolTip1のToolTip」というプロパティ(または同様のもの)があります。そのプロパティに目的のツールチップテキストを設定します。
  4. 他のコントロールに対して2〜3を繰り返します
  5. できた.

ここでの秘trickは、ToolTipコントロールがエクステンダーコントロールであるということです。つまり、フォーム上のその他のコントロールのプロパティセットを拡張します。舞台裏では、Svetlozarの答えのようなコードを生成することでこれを実現しています。同じ方法で機能する他のコントロールがあります(HelpProviderなど)。

39
Fredrik Mörk

C#のToolTipは、ほとんどすべてのUIコントロールに非常に簡単に追加できます。このためにMouseHoverイベントを追加する必要はありません。

これがその方法です-

  1. ToolTipオブジェクトをフォームに追加します。フォーム全体に1つのオブジェクトで十分です。 ToolTip toolTip = new ToolTip();

  2. 目的のテキストを使用して、コントロールをツールチップに追加します。

    toolTip.SetToolTip(Button1,"Click here");

8
OopsDev

私はこのようにしました:イベントをコントロールに追加し、コントロールのタグを設定し、適切なコントロール/タグのツールチップを処理する条件を追加します。

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);
    }
}
1
log-cab.in