2017-05-31 12 views
0

Ich habe eine Picturebox mit einer zugehörigen QuickInfo, die ich zeigen möchte, wenn die PictureBox angeklickt wird, aber nicht, wenn die Maus darüber bewegt wird. Ich habe versucht, ein leeres MouseHover Ereignis für die picturebox erstellen, aber der Tooltip angezeigt wird, nach wie vor:Tooltip sollte nicht auf MouseHover angezeigt werden

private void pictureBox3_MouseHover(object sender, EventArgs e) 
    { 

    } 

    private void pictureBox3_Click(object sender, EventArgs e) 
    { 
     int durationMilliseconds = 30000; 
     toolTip1.Show(toolTip1.GetToolTip(pictureBox3), pictureBox3, durationMilliseconds); 
    } 

Was kann ich tun, damit der Tooltip nicht auf MouseHover angezeigt wird?

+0

Ereignisse können mehrere Methoden gebunden zu ihnen haben. Fügen Sie "e.Handled = true" zum Hover-Ereignis hinzu. Auf diese Weise wird das Ereignis als behandelt markiert und nachfolgende Methoden für dieses Ereignis werden nicht aufgerufen. – Lithium

Antwort

3

Keine Tooltip für BildBox3 (entfernen Sie es). Nur ein zeigen:

// On class scope to have access from MouseEnter 
ToolTip tt = new ToolTip(); 

private void pictureBox3_Click(object sender, EventArgs e) 
{ 
    int durationMilliseconds = 30000;   
    tt.IsBalloon = true; 
    tt.InitialDelay = 0; 
    tt.Show("tooltip text", pictureBox3, durationMilliseconds); 
} 

der Tooltip Um zu verhindern, zu permantly einen Event-Handler zum picturebox für MouseEnter hinzufügen eingestellt werden:

private void pictureBox3_MouseEnter(object sender, EventArgs e) 
{ 
    tt.RemoveAll(); 
} 
+0

Danke! Nach einem Klick ist das Hover-Event aber wieder aktiv. (Ich habe die ursprüngliche Tooltip entfernt) –

+0

Ich habe einen Weg hinzugefügt, um dies zu verhindern –

+0

Nochmals vielen Dank für Ihre Hilfe! –

Verwandte Themen