3

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

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

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

当 tabPage 的 tabControl 被创建时(动态地),一个 imageList 被添加到 tabControl 中(这是从中提取图像的地方)。

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

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

4

4 回答 4

4

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

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

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

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

于 2011-06-22T18:34:40.400 回答
3

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

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

它对我有用。

于 2013-04-20T08:53:18.453 回答
1

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

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";

希望这可以帮助!

于 2020-02-28T17:31:33.423 回答
0

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

于 2015-11-12T15:35:56.410 回答