none
ToolTip? RRS feed

  • Frage

  • Hi Leute,

    ich möchte mir Quickinfos anzeigen lassen, wenn sich die Maus über einigen Textboxes meines Formulars befindet und sich eine gewisse Zeit nicht mehr bewegt. Dazu habe ich mir ein toolTip Objekt aus dem Designer auf meine Form plaziert. Anschließend gibt es in den textBox-Eigenschaften eine neue Option namens "ToolTip auf toolTip1", hinter der ich meine Info-Text eintragen kann. Soweit so gut.

    Nun zum Problem: Starte ich das Programm so erscheint der Tooltip nur anfangs, solange die jeweilige textBox noch nie den Focus besaß. Sobald ich sie einmal anklicke, kommt die toolTip-Info nie wieder. Egal wielange die Maus darüber verweilt... nix mehr. Auch wenn ich den Focus auf andere Elemente lenke, über der textBox erscheint nix mehr.

    1) Was muss ich tun damit der ToolTip immer erscheint?

    Meine bisherigen ToolTip-Einstellungen:

    	// 
    	// toolTip1
    	// 
    	this->toolTip1->AutomaticDelay = 500;
    	this->toolTip1->AutoPopDelay = 5000;
    	this->toolTip1->InitialDelay = 500;
    	this->toolTip1->ReshowDelay = 100;
    	this->toolTip1->ShowAlways = true;
    	this->toolTip1->ToolTipTitle = L"Info";
    
    2) Der ToolTip erscheint derzeit auch nur, wenn sich die Maus in der jeweiligen textBox bewegt! Aber eigentlich möchte ich dass der ToolTip nur kommt wenn die Maus in der textBox still steht. Wie geht das?

    Mittwoch, 6. Juli 2011 08:55

Alle Antworten

  • Habe gerade einen schönen BUG entdeckt:

    Wenn ich die ToolTip Beschreibung per Designer eintrage (z.b. über die textBox-Eigenschaft "ToolTip auf toolTip1"), und dieser Beschreibungstext über mehrere Zeilen geht, dann kommt Visual Studio durcheinander und fügt falschen (automatischen) Code ein.

    Hier der Fehler am Beispiel:

    Ich möchte an eine TextBox folgenden ToolTip Text haben:

     

    Tragen Sie hier eine formatierte Zeichenfolge ein.
    Zeichenformat: Bsp.: E7010001
    E7 - Hardwarekennung
    01 - Layout Revision
    0001 - Firmwareversion
    

     


    Füge ich diesen Text per Designer der Textbox hinzu, kompiliert alles ohne Fehler. Beim Starten des Programms kommt allerdings ein Fehler und das Programm stürzt ab. Fehlerbeschreibung "Eine nicht behandelte Ausnahme des Typs "System.Resources.MissingManifestResourceException" ist in mscorlib.dll aufgetreten." Grund dafür ist, dass die automatische Codeerstellung vom Visual Studio folgenden Code erstellt hat:

     

    this->toolTip1->SetToolTip(this->textBoxSerialTool, resources->GetString(L"textBoxSerialTool.ToolTip"));
    

     

    Und da steckt auch der Fehler, im Parameter der GetString Methode. Scheint mir eine Art C#/CLI ausversehen in C++/CLI einfügen zu sein. Er erwartet eigentlich einen String, fügt aber eine Klassen-Eigeschaft ein, und das noch im C# Stil. Ändere ich diese Code, und füge meinen ToolTip-Text hier per Hand ein, dann funktioniert alles wunderbar:

    this->toolTip1->SetToolTip(this->textBoxSerialTool, L"Tragen Sie hier eine formatierte Zeichenfolge ein."
    L"\r\nZeichenformat: Bsp.: E7010001"
    L"\r\nE7 - Hardwarekennung"
    L"\r\n01 - Layout Revision"
    L"\r\n0001 - Firmwareversion");
    

     

    Nur bringt es mir wenig, den Code per Hand zu ändern, da er jedes mal neu erstellt wird, sobald Visual Studio mit der automatischen Codeerstellung drüberbügelt (was ja sehr oft der Fall ist) ist alles wieder weg.

     


    Mittwoch, 6. Juli 2011 09:38