Wie kann ich den text ändern eines vorhandenen QuickInfo-Steuerelement, in eine PictureBox in meinem WinForm-Anwendung?
Ich habe eine winform-Anwendung, die eine dynamische Anzahl (basierend auf einem Datenbank-Wert) von PictureBoxes
. Jede P-Box hat eine Tooltip
Kontrolle.
Wie kann ich das ändern Sie den QuickInfo-Text ohne irgendwelche memory leaks? Jetzt habe ich folgenden code, aber es ist undicht Speicher => der Vorherige ToolTip-Steuerelemente sind nicht immer GC würde.
BTW, dies ist ein hintergrund-thread, der versucht ein update der main-UI-thread....
if (pictureBox == null || !pictureBox.IsHandleCreated) {
continue;
}
Action setTooltipAndImage = () => {
var toolTip = new ToolTip();
GameServer tempGameFile = gameServer;
toolTip.SetToolTip(pictureBox, string.Format(...));
pictureBox.Image = Resources.RedButton;
};
if (pictureBox.InvokeRequired) {
pictureBox.Invoke(setTooltipAndImage);
} else {
setTooltipAndImage();
}
Wie gesagt - das funktioniert aber es ist undicht.
Jemand irgendwelche Vorschläge?
InformationsquelleAutor der Frage Pure.Krome | 2011-08-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht erstellen Sie einen neuen ToolTip jedes mal. Eine QuickInfo hinzufügen, um das Formular mit dem visual designer, wie würden Sie für ein anderes Steuerelement oder einer Komponente. Rufen Sie
toolTip.SetToolTip(...)
auf dem Formular-tool-Tipp jedes mal. Der ToolTip entsorgt werden, wenn das Formular entsorgt.InformationsquelleAutor der Antwort Hand-E-Food
Ja, Sie müssen nicht erstellen Sie einen neuen ToolTip jedes mal, ein einziges ToolTipwill tun. Es ist kein Problem, wenn Sie nicht wissen, wie viele ToolTips, die Sie wollen, denn wenn es nur ein ToolTip sagen
toolTip1
dann können Sie die folgenden jedes mal, wenn Sie ändern möchten die ToolTip Beschriftung und Kontrolle auf ein Ereignis. Sie brauchen nur eine ToolTip-Instanz pro form.InformationsquelleAutor der Antwort Shweta patel