233

Windows フォームを使用してボタンの上にツールチップを表示するにはどうすればよいですか?

4

9 に答える 9

243

ToolTip は、単一のフォーム上の複数の要素のツール ヒントの表示を処理する単一のWinForms コントロールです。

ボタンの名前が MyButton だとします。

  1. ToolTip コントロール (Windows フォーム ツールボックスの [コモン コントロール] の下) をフォームに追加します。
  2. 名前を付けます - MyToolTip と言ってください
  3. MyButton の "Tooltip on MyToolTip" プロパティ (ボタン プロパティ グリッドの [その他] の下) を、ホバーしたときに表示されるテキストに設定します。

ツールチップは、カーソルをボタンの上に置くと自動的に表示されますが、プログラムで表示する必要がある場合は、

MyToolTip.Show("Tooltip text goes here", MyButton);

コードでツールチップを表示し、

MyToolTip.Hide(MyButton);

また消えるように。

于 2008-10-03T19:50:53.430 に答える
102

フォーム デザイナーの使用:

  • ToolTip コントロールをツールボックスからフォームにドラッグします。
  • ツール ヒントを表示するコントロールのプロパティを選択します。
  • プロパティ「ToolTip on toolTip1」を見つけます (デフォルト名を変更した場合、名前は toolTip1 ではない可能性があります)。
  • プロパティのテキストを、表示するツール ヒント テキストに設定します。

次の呼び出しを使用して、プログラムでツール ヒントを設定することもできます。

this.toolTip1.SetToolTip(this.targetControl, "My Tool Tip");
于 2008-10-03T19:55:53.437 に答える
54

ToolTip クラスを使用できます。

コントロールのツールチップを作成する

例:

private void Form1_Load(object sender, System.EventArgs e)
{
    System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
    ToolTip1.SetToolTip(this.Button1, "Hello");
}
于 2008-10-03T19:47:26.153 に答える
6

.NET フレームワークは ToolTip クラスを提供します。それらのいずれかをフォームに追加し、ツールチップが必要な各アイテムの MouseHover イベントで、次のようにします。

private void checkBox1_MouseHover(object sender, EventArgs e)
{
    toolTip1.Show("text", checkBox1);
}
于 2008-10-03T19:48:17.023 に答える
5

Tagプロパティにテキストを遅延してコンパクトに格納する

少し怠け者で、コントロールのTagプロパティを他の目的で使用しない場合は、それを使用してツールヒント テキストを保存し、次のようにすべてのコントロールにMouseHoverイベント ハンドラーを一度に割り当てることができます。

private System.Windows.Forms.ToolTip ToolTip1;
private void PrepareTooltips()
{
    ToolTip1 = new System.Windows.Forms.ToolTip();
    foreach(Control ctrl in this.Controls)
    {
        if (ctrl is Button && ctrl.Tag is string)
        {
            ctrl.MouseHover += new EventHandler(delegate(Object o, EventArgs a)
            {
                var btn = (Control)o;
                ToolTip1.SetToolTip(btn, btn.Tag.ToString());
            });
        }
    }
}

この場合、 Tagプロパティに文字列を持つすべてのボタンにMouseHoverイベントが割り当てられます。コンパクトに保つ​​ために、MouseHoverイベントはラムダ式を使用してインラインで定義されます。イベントでは、ボタンをホバーすると、そのタグテキストがツールチップに割り当てられて表示されます。

于 2016-06-13T11:39:38.983 に答える
-4

確かに、mousehover イベントを処理して、ツール ヒントを表示するように指示するだけです。t は、以下を使用してグローバルまたはコンストラクターで定義されたツールチップです。

ToolTip t = new ToolTip();

次に、イベント ハンドラー:

private void control_MouseHover(object sender, EventArgs e)
{
  t.Show("Text", (Control)sender);
}
于 2008-10-03T19:39:43.267 に答える