Tooltip Problem
-
Hi,
Ich hab ein ListView mit 2 Spalten der über eine Mysql Datenbank dynamisch gefüllt wird. Zeitgleich setzte ich auch dynamisch die tooltipTexte. unktioniert alles super, das einzige Problem ist das meine Form immer on top ist und dadurch die tooltips hinter der Form angezeigt werden. Das Problem tritt beim toolstrip nicht auf.
Kann mir da wer weiter helfen
?
danke, lg seek
-
Ich glaub ich hab nur Probleme worauf es keine Antworten gibt oder nicht geantwortet wird
Könnte mir vielleicht einer sagen wie ich den ToolTip in verbindung mit einer ListView oder ListviewItem verwenden kann? Für den ToolTip braucht man ein Control aber ListView und ListViewItem sind keine controls.
lg seek
-
seek1338 schrieb:
Hi,
Ich hab ein ListView mit 2 Spalten der über eine Mysql Datenbank dynamisch gefüllt wird. Zeitgleich setzte ich auch dynamisch die tooltipTexte. unktioniert alles super, das einzige Problem ist das meine Form immer on top ist und dadurch die tooltips hinter der Form angezeigt werden. Das Problem tritt beim toolstrip nicht auf.
Kann mir da wer weiter helfen
?
danke, lg seek
Wo genau sollen denn, die toolTip erscheinen, also vom toolTip von einer Zeile aus dem ListView?
-
Hi,
ich poste mal den code der in der schleife ist und für den Aufbau des Listvuiew zuständig ist:
xItem[i] = gcnew ListViewItem(tmp[3]); xItem[i]->ImageKey::set(tmp[0]); xItem[i]->SubItems->Add(dateMake.ToString("dd/MM, HH:mm")); if(tmp[5]->Contains("Mittel")) xItem[i]->BackColor = System::Drawing::Color::Yellow; if(tmp[5]->Contains("Wichtig")) xItem[i]->BackColor = System::Drawing::Color::Red; xItem[i]->ToolTipText = "Betreff: " + tmp[3] + "\nVon: " + tmp[2] + "\nNachricht: "+tmp[4]; listview->Items->Add(xItem[i]);
Man kann hier auch gut erkennen wo der ToolTipText eingebaut ist. Der ist für jede Zeile anders. Dieser wird auch richtig dargestellt nur wenn die Form auf TopMost = true ist dann erscheint der tooltiptext hiter der form
Wenn ich aber ein ToolTip verwende geht das nciht da die ListViewItems keine controls sind, wenn ich richtig meine such resultate beurteilt habe sind die ToolTips nur für controls buttons etz.
Ich hoffe du verstehst was ich meine.
lg seek
-
Lol, verdammt. Aber welchem toolTip, von welchem Control, weist du denn ToolTipText String zu? Ich meine du kannst ja auch bei einer TextBox einen toolTip erscheinen lassen. Also eine Eigenschaftszuweisung inerhalb der Klasse von TextBox. Man kann die einzelnen Zeilen aus der ListView schon verknüpfen. Contextmenü oder so hatte ich mal selbst hier gefragt und beantwortet bekommen. Finde es jetzt aber gerade nicht.
-
Wie währe es jetzt wenn du ein Ereigniss(Event) und zwar MousEnter erstellt. Dann bekommst du ja von "System::EventArgs^ e" von "e->" den Index(Nummer) der berührten Zeile. Und läst dann ein ToolTip was extra erstellt wurde und zu keinem Control gehört (also unten in der Leiste unter dem Form in der Entwurfsansicht, gelegt wurde) direkt an der Position des Mauszeigers erstellen. Oder wurde dann dieses für sich allein stehende ToolTip wieder hinter dem Form bleiben?
-
Im obigen Beispiel ist das ein ListViewItem, ich weis ned genau was du meinst bin auch noch ein Anfänger
Ich meinte mit ToolTip -> System::Windows::Forms::ToolTip
Beispiel:
toolTip1->SetToolTip(System::Windows::Forms::Control^ control, System::String^ caption);
Ich weis leider nciht wie ich das mit meinem Beispiel kombinieren kann da dieses Tooltip ein control braucht und mein listviewitem kein control ist. Ich hoffe jetzt weist du was ich meine.
lg seek
-
Kennst du das denn schon hierhttp://www.imgbox.de/users/public/images/q43837s147.png?
this->listView1->ShowItemToolTips = true;
-
HI,
this->listView1->ShowItemToolTips = true;
Ist natürlich an!
Das im Bild -> ToolTip auf toolTip1 ist für die gesamte Listview und kann nicht für einzelne Items benutzt werden. ich wollte wissen wie es möglich ist die toolTip1 für die subitems zu nutzen? Problem wie im letzten post beschrieben sind die Funktions Paramater, da diese ein Control verlangen und ein Item der ListView kein Control ist.
Nochmal zur besseren verdeutlichung:
xItem[i] = gcnew ListViewItem(tmp[3]); xItem[i]->ImageKey::set(tmp[0]); xItem[i]->SubItems->Add(dateMake.ToString("dd/MM, HH:mm")); if(tmp[5]->Contains("Mittel")) xItem[i]->BackColor = System::Drawing::Color::Yellow; if(tmp[5]->Contains("Wichtig")) xItem[i]->BackColor = System::Drawing::Color::Red; xItem[i]->ToolTipText = "Betreff: " + tmp[3] + "\nVon: " + tmp[2] + "\nNachricht: "+tmp[4]; listview->Items->Add(xItem[i]);
Items werden in xItem[i] generiert. 1 Item hat 1 Subitem je nach status gelb, rot oder keine hintergrundfarbe und ein tooltiptext. Letzte zeile wird das Item der listview zugefügt.
Das Problem ist wenn die Form wo das ganze passiert auf Topmost ist, das bedeutet immer on Top eal was offen ist dann sieht man die ToolTips der einzelnen Items hinter der Form. Wenn die Form auf normal ist dann sieht man die Tooltips auf normal.
lg seek
-
Währe vielleicht nicht mal schlecht wenn du ein Foto von dem machst, wo man sieht dass das TooltTip hinter dem Form gelandet ist, bzw. wenn man es sieht wenn man das Form zur seite schiebt so meinst du dass doch oder?
Und wie wehre es denn wenn du von einem ToolTip das was da gezeichnet wird erbst und dann im auftrag von Form Paint(Ereigniss) in dass Form, an der Position zeichnen läst? Denn dann gehöhrt es ja zum Form was Topmost ist, du pop up spamer
-
Ich denke ich habe dass was du wilst: Benutze ein ToolTip über das Form.
Dass wird auch bei Form topmost = true angezeigt.
Und über (toolTip1)->Active läst du das ToolTip erscheinen oder nicht und kannst natürlich je nach angeklicktem Item oder SubItem den dafür gedachten String (mainForm)->(ToolTip auf toolTip1) zu weisen.
-
lol das versteh ich jetzt überhaupt nicht
Ich wollte das umsetzten mit MouseOverItem hab dann zum testen
//SET ToolTip Aktive toolTip1->SetToolTip(listView1, "TEST STRING");
im onLoad event des Prgoramms eigegeben.
Siehe da was passiert mein eigentlicher ItemToolTipText erscheint im toolTip1 und nicht "TEST STRING"
Keihne Ahnung wie das möglich ist aber es funktioniert
Danke für die info mit dem events hätts auch funktioniert nur wäre mehr code gewessen
Vielleicht kann mir mal einer sagen wieso das so ist?
lg seek
-
seek1338 schrieb:
lol das versteh ich jetzt überhaupt nicht
Ich wollte das umsetzten mit MouseOverItem hab dann zum testen
//SET ToolTip Aktive toolTip1->SetToolTip(listView1, "TEST STRING");
im onLoad event des Prgoramms eigegeben.
Siehe da was passiert mein eigentlicher ItemToolTipText erscheint im toolTip1 und nicht "TEST STRING"
Keihne Ahnung wie das möglich ist aber es funktioniert
Danke für die info mit dem events hätts auch funktioniert nur wäre mehr code gewessen
Vielleicht kann mir mal einer sagen wieso das so ist?
lg seek
Weil der Compilier bzw. der Computer Befehlscode für Befehlscode abarbeitet oder Zeichen für Zeichen und Zeile für Zeile. Das was bei dir da passiert könnte man in etwa so verdeutlichen:
String^ ichKette = "Ich bin Schlau"; ichKette = "Nein bist du nicht!"; this->text = ichKette;
Ausagbe im Titel: << Nein bist du nicht! >>
-
Stimmt du hast recht ist einleuchtend
Danke für die Hilfe bin noch neu hab erst seit 3 wochen so ein buch und kenn mich leider noch nicht sehr gut aus.
Eine Frage wäre da noch hat jetzt nichs mit meinem Programm zu tun.
Was findest du sollte ich lernen c++ Normal also MFC (nehme ich an), c++/cli ist aber nur .net da wäre c# glaub ich besser. Ich hab voll probleme sachen für c++/cli zu finden beispiele etz. bei c# lese ich die ab und übertrags in c++
Ich will eigentlich richtiges Programmieren lernen und mich nicht von irgendwelchen sdks/frameworks etz. einengen lassen. Was würdest du/Ihr mir raten zu lernen um nicht an etwas gebunden zu sein?
Natürlich will ich trotzdem mit .net anderen sdks etz. arbeiten falls es grad einfacher ist, man muss ned immer das rad neu erfinden *g*
(Sorry falls die Frage nicht direkt in das Forum passt)
lg seek
-
http://openbook.galileocomputing.de/csharp/kap34.htm
Wie wäre es mit Google?Also was ich mit ziemlicher sicherheit weiß, C++ ist am schnellsten auf Platformen wie Windows, Linux. Mit .Net ist es für gelegenheitsentwicklern und entwicklern ohne Team einfacher, auch weil er wohl kaum die zeit hat selber Controls für Windows zu schreiben und a. ohne .Net müsste er auch noch die Speicherverwaltung schreiben!
Und du kennst dich nicht zufäligerweise mit UserControl aus? http://www.c-plusplus.net/forum/viewtopic-var-t-is-246495.html
-
Also wie gesagt ich beschäftige mich mit c++/cli erst seit 3 wochen oder so und hab grad mal so ein einsteiger buch gelsen damit ich mit der syntax halbwegs klar komme.
Wie man UserControls programmiert da hab ich kein plan, mich würde es auch interessieren wie man eigene Buttons machen kann und eigene Formen zBsp. runde formen wo das programm drinen läuft.
Oder wie ICQ das hat einfach ein eigenes design
lg silviu
-
Nun man kann ein Form von .Net totall auseinander nehmen und sehr klein machen. Gucke mal in das Eigenschaftsfenster wenn du auf ein Form klickst. Du kannst da Titeleiste weg machen, Backcolor ändern. Sowohl das selbe gilt für die Controls. Auch wenn das je nach dem etwas unterschiedlich ist weil das Control möglicherweise spezifisch ist.
Wenn du richtig die WinApi von Windows Manuell ansteuern wilst musst du dich mit opengl oder directx auseinander setzten. Habe ich mal versucht braucht viell einübungs- und brobier- und verstehzeit.
-
Das mit Opengl hab ich auch gelesen nur wie gesagt man muss ned gleich das Rad neu erfinden :).
Ich wollte halt bei der Form das X oben ausblenden weil ich ein eigenes button zum Programmschliesen habe. X kann man nur ausblenden wenn die ControlBox auf False ist.
Ich möchte aber das Icon benutzen und das geht nicht wenn ich die COntrolbox ausschalte
Aber da habe ich auch die lösung über die Winapi gefunden leider nix .Net internes. Aber vorerst will ich mal alles machen das geht und ancher beschäftige ich mich mit WinApi.
Muss auch Hooks bentzen weil man mit einer taste das fenster ein und ausblenden kann wird leider auch ned von .net unterstützt naja das tool wird mich noch so amche nerven kosten *g*
lg seek
-
seek1338 schrieb:
Das mit Opengl hab ich auch gelesen nur wie gesagt man muss ned gleich das Rad neu erfinden :).
Ich wollte halt bei der Form das X oben ausblenden weil ich ein eigenes button zum Programmschliesen habe. X kann man nur ausblenden wenn die ControlBox auf False ist.
Ich möchte aber das Icon benutzen und das geht nicht wenn ich die COntrolbox ausschalte
Aber da habe ich auch die lösung über die Winapi gefunden leider nix .Net internes. Aber vorerst will ich mal alles machen das geht und ancher beschäftige ich mich mit WinApi.
Muss auch Hooks bentzen weil man mit einer taste das fenster ein und ausblenden kann wird leider auch ned von .net unterstützt naja das tool wird mich noch so amche nerven kosten *g*
lg seek
Du kannst aber einen Thread Process erstellen der im Hintergrund auf einen Tastendruck wartet...
-
LiGERWooD schrieb:
Du kannst aber einen Thread Process erstellen der im Hintergrund auf einen Tastendruck wartet...
Danke für die Info ich werd mal dannach suchen kann mir noch nix drunter vorstellen hab noch keine Vorstellugn zwischen Thread, Process und dem ganzen
lg seek