Tengo una aplicación winform que tiene un número dinámico (basado en un valor de base de datos) de PictureBoxes
. Cada P-Box tiene un control Tooltip
.¿Cómo puedo cambiar el texto de un control ToolTip existente en PictureBox en mi aplicación WinForm?
¿Cómo puedo cambiar el texto de información sobre herramientas sin tener pérdidas de memoria? En este momento, tengo el siguiente código, pero está perdiendo memoria => los controles ToolTip anteriores no reciben GC'd.
Por cierto, este es un subproceso de fondo que está tratando de actualizar el hilo principal interfaz de usuario ....
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();
}
Como dije - esto funciona, pero que hay un escape.
¿Alguien tiene alguna sugerencia?
hmm .. why the downvote? parece una pregunta honesta? –
+1 para volver a cero, parece una pregunta totalmente aceptable. BTW: ¿qué herramientas estás usando para ver la fuga de memoria ToolTip? –
Estoy usando ANTS Memory Profiler. Aquí hay una pregunta similar que hice con capturas de pantalla: http://stackoverflow.com/questions/7225959/how-can-i-debug-this-stackoverflowexception-in-my-winform-application –