C# TabPage:文本更改时图像将被删除

C# TabPage:文本更改时图像将被删除,c#,winforms,tabcontrol,C#,Winforms,Tabcontrol,我目前正在尝试使用ImageList中的图像更改特定选项卡页的文本。但每次我试图更改选项卡页面的文本时,图像都会被删除。 以下是外观: 下面是我如何更改文本的: private void Log_UnreadChanged(int unread) { this.InvokeEx(f => { if (unread > 0) { f.logTab.Text = "

我目前正在尝试使用ImageList中的图像更改特定选项卡页的文本。但每次我试图更改选项卡页面的文本时,图像都会被删除。 以下是外观:

下面是我如何更改文本的:

private void Log_UnreadChanged(int unread)
    {
        this.InvokeEx(f =>
        {
            if (unread > 0)
            {
                f.logTab.Text = "Log (" + unread + ")";
            }
            else
            {
                f.logTab.Text = "Log";
            }
        });
    }

InvokeEx方法来自。

问题是,我使用的是
ImageKey
而不是
ImageIndex
属性。每次文本更改后,我都设置了
ImageIndex

问题是,我使用的是
ImageKey
而不是
ImageIndex
属性。每次文本更改后,我都会设置
ImageIndex

您能否共享用文本和图像初始化选项卡标题的代码?@KernelMode这是在设计器代码中完成的,我应该分享它吗?不。你能在你的项目中搜索
logTab.ImageIndex
的用法并检查你是否看到任何意外的赋值吗?@KernelMode我使用的是
ImageKey
,除了这个用法和设计器代码中的用法之外,没有其他用法。所以使用索引(
int
)而不是键(
string
)并告诉我发生了什么。我的意思是删除代码中的所有
…ImageKey=
。我怀疑您的键有误(
string
)。你能用文本和图像共享初始化选项卡标题的代码吗?@KernelMode这是在设计器代码中完成的,我应该共享吗?不。你能在项目中搜索
logTab.ImageIndex
的用法并检查是否看到任何意外的分配吗?@KernelMode我使用的是
ImageKey
,没有其他u除了这一个和设计器代码中的一个之外,还有一些圣人。因此,请使用索引(
int
)而不是键(
string
),然后告诉我发生了什么。我的意思是删除代码中的所有
…ImageKey=
。我怀疑您的键是错误的(
string
)。