繁体   English   中英

C# TabPage ImageKey 不绘制

[英]C# TabPage ImageKey not drawing

我有一个对客户帐户运行测试的应用程序,以判断他们的服务是否正常工作。 在运行测试的过程中,应用程序读取每个测试并检查它是否通过/失败/等等......它在tabPage本身上播放一个绿色复选标记/红色x作为图像键......图像键被分配为所以

(tabPage as TabPage).ImageKey = "pass.png";

tabPage 实际上是一个传递给函数的对象,因此我可以从不同的方法中引用它。

当创建 tabPage 的 tabControl 时(动态地),一个 imageList 被添加到 tabControl(这是从那里拉出图像的地方)。

(tabControl[0] as TabControl).ImageList = imageList2;

因此,当该方法最终处理分配 ImageKey 的代码时,它确实运行了代码,但它只是显示为空白图像。 这很奇怪,因为它适用于某些人而不适用于其他人。 它目前也不适用于我的自动取款机,当我执行源代码时它们也不会显示。 有没有人有任何想法? 这是帮助描述问题的图像......如果需要,请遵循更多代码。示例图像

您对答案的需求可能早已过去,但我遇到了同样的问题,这是我的解决方案:

设置 ImageKey 不起作用,但设置 ImageIndex 确实会导致图标显示 我制作了一个枚举器,将图标映射到它们的索引。

private enum TabIconCodes : int
{
    Stopped = 1,
    Running = 2,
}
unitTab.ImageIndex = (int)TabIconCodes.Stopped;

这不是理想的解决方案,但确实有效。

嗨! 同一概念的另一个解决方案:

 tabp.ImageIndex = ImageListTabpages.Images.IndexOfKey("ImageKey")

它对我有用。

我知道很久以前就有人问过这个问题,但这里提供的答案要么是一种解决方法,要么不够清楚。

This does NOT show the image:
var tabPage = new TabPage("page text");
tabPage.Name = "pageName";
tabPage.ImageKey = "myImageKey";
TabPages.Add(tabPage);  //tab is added AFTER setting the ImageKey
This works fine:
var tabPage = new TabPage("page text");
TabPages.Add(tabPage);  //tab is added BEFORE setting the ImageKey
tabPage.Name = "pageName";
tabPage.ImageKey = "myImageKey";

希望这有帮助!

在为 PageTab 设置 ImageKey 之前,PageTab 的 TabControl 需要设置 ImageList 并且 PageTab 必须添加到 TabControl

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM