it-swarm.com.de

Zeigen Sie mithilfe von Windows Forms eine QuickInfo über einer Schaltfläche an

Wie kann ich mit Windows Forms eine QuickInfo über einer Schaltfläche anzeigen?

189
Anonymous Cow

Die QuickInfo ist eigentlich ein WinForms-Steuerelement, das die Anzeige von QuickInfos für mehrere Elemente in einem einzelnen Formular behandelt.

Angenommen, Ihre Schaltfläche heißt MyButton.

  1. Fügen Sie Ihrem Formular ein ToolTip-Steuerelement (unter Common Steuerelemente in der Windows Forms Toolbox) hinzu. 
  2. Geben Sie einenName ein - sagen Sie MyToolTip 
  3. Legen Sie die Eigenschaft "Tooltip on MyToolTip" von MyButton (unter Misc in Des Eigenschaftsbereichs der Schaltfläche) auf den Text fest, der angezeigt werden soll, wenn Sie den Mauszeiger darüber bewegen.

Die QuickInfo wird automatisch angezeigt, wenn sich der Cursor über der Schaltfläche befindet. Wenn Sie ihn programmgesteuert anzeigen möchten, rufen Sie ihn auf

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

in Ihrem Code, um den Tooltip anzuzeigen, und MyToolTip.Hide (MyButton), damit es wieder verschwindet.

203
Dylan Beattie

Verwenden des Formular-Designers:

  • Ziehen Sie das ToolTip-Steuerelement aus der Toolbox auf das Formular.
  • Wählen Sie die Eigenschaften des Steuerelements aus, auf dem die QuickInfo angezeigt werden soll.
  • Suchen Sie die Eigenschaft 'ToolTip on toolTip1' (der Name ist möglicherweise nicht toolTip1, wenn Sie den Standardnamen geändert haben).
  • Legen Sie den Text der Eigenschaft auf den QuickInfo-Text fest, den Sie anzeigen möchten.

Mit dem folgenden Aufruf können Sie auch den Tooltip programmatisch festlegen:

this.toolTip1.SetToolTip(this.targetControl, "My Tool Tip");
83
jmatthias

Sie können die ToolTip-Klasse verwenden:

QuickInfo für ein Steuerelement erstellen

Beispiel:

private void Form1_Load(object sender, System.EventArgs e)
{
    System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
    ToolTip1.SetToolTip(this.Button1, "Hello");
}
35
DaveK

Für den Standard-Tooltip kann dies verwendet werden -

System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
ToolTip1.SetToolTip(this.textBox1, "Hello world");

Eine angepasste QuickInfo kann auch verwendet werden, wenn eine Formatierung für die QuickInfo-Nachricht erforderlich ist. Dies kann durch benutzerdefinierte Formatierung des Formulars erstellt werden und als Tooltip-Dialog beim Mauszeiger-Ereignis des Steuerelements verwendet werden. Bitte überprüfen Sie den folgenden Link für weitere Details -

http://newapputil.blogspot.in/2015/08/create-custom-tooltip-dialog-from-form.html

4
nvivekgoyal

Das .NET-Framework stellt eine ToolTip-Klasse bereit. Fügen Sie eines dieser Elemente zu Ihrem Formular hinzu und führen Sie dann für jedes Element, für das Sie einen Tooltip wünschen, ein MouseHover-Ereignis aus.

    private void checkBox1_MouseHover(object sender, EventArgs e)
    {
        toolTip1.Show("text", checkBox1);
    }
3
Timothy Carter

Faules und kompaktes Speichern von Text in der Eigenschaft Tag

Wenn Sie ein wenig faul sind und die Tag - Eigenschaft der Steuerelemente nicht für andere Zwecke verwenden, können Sie den Tooltip-Text speichern und allen derartigen Steuerelementen MouseHover - Ereignishandlern auf einmal zuordnen :

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

In diesem Fall wird allen Schaltflächen mit einer Zeichenfolge in der Eigenschaft Tag das Ereignis MouseHover zugewiesen. Um es kompakt zu halten, wird das Ereignis MouseHover mithilfe eines Lambda-Ausdrucks inline definiert. In dem Fall, dass eine Schaltfläche im Schwebeflug ist, wird der Text Tag der QuickInfo zugewiesen und angezeigt. 

3
flodis
private void Form1_Load(object sender, System.EventArgs e)
{
    ToolTip toolTip1 = new ToolTip();
    toolTip1.AutoPopDelay = 5000;
    toolTip1.InitialDelay = 1000;
    toolTip1.ReshowDelay = 500;
    toolTip1.ShowAlways = true;
    toolTip1.SetToolTip(this.button1, "My button1");
    toolTip1.SetToolTip(this.checkBox1, "My checkBox1");
}
0
akn