Pur*_*ome 17 .net c# tooltip picturebox winforms
我有一个winform应用程序,它具有动态数字(基于数据库值)PictureBoxes.每个P-Box都有一个Tooltip控件.
如何在没有任何内存泄漏的情况下更改ToolTip文本?现在,我有以下代码,但它正在泄漏内存=>之前的ToolTip控件没有得到GC.
顺便说一句,这是一个尝试更新主UI线程的后台线程....
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();
}
Run Code Online (Sandbox Code Playgroud)
正如我所说 - 这有效,但它正在泄漏.
有人有什么建议吗?
Han*_*ood 24
每次都不要创建新的工具提示.使用可视化设计器向表单添加工具提示,就像对任何其他控件或组件一样.toolTip.SetToolTip(...)每次都要调用表单的工具提示.处理表格时将处理工具提示.
小智 5
是的,您不需要每次都创建一个新的工具提示,单个工具提示即可。如果您不知道想要多少个工具提示,也没有问题,因为如果只有一个工具提示toolTip1,那么每次您想要更改工具提示标题和对某个事件的控制时,您都可以使用以下命令。每个表单只需要一个 ToolTip 实例。
toolTip1.SetToolTip(Current_pictureBox, "<tool tip string>");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24008 次 |
| 最近记录: |