2013-05-13 83 views
0

我有用C#编写的winform应用程序。我在我的winform中有一个imageList,并且我有一个tabcontrol,并且每个选项卡通过更改ImageIndex来为该选项卡分配图像作为图标。C#winform更改选定tabcontrol图像

然而,他们只有1个图像为每个选项卡,我希望他们改变为选定选项卡的另一个图像(如另一个高亮显示的图像为活动的)。我有一个想法将所有图像添加到imageList(活动和非活动图像),并更改选定选项卡的imageIndex。但我不确定如何在实际中做到这一点。

这里是我当前的代码,我可以想出:

里面SelectedIndexChange事件,我有一个函数:

foreach (TabPage tab in tabControl1) 
{ 
    if (tab.index == tabControl1.SelectedIndex) { <---how to get the index? 
     tab.imageIndex = tab.index + tabControl1.TabCount; 
    } else { 
     tab.imageIndex = tab.index; 
    } 
} 
+0

你的意思是该图像显示为活动标签? – matzone 2013-05-13 07:47:15

+0

只需使用选定事件切换到高亮图像,取消选择事件即可将其恢复。 – 2013-05-13 13:03:48

回答

0

我想出了一个解决方案

for (int i=0; i<tabControl1.TabPages.Count; i++) 
     { 
      if (tabControl1.TabPages[i] == tabControl1.SelectedTab) 
      { 
       tabControl1.TabPages[i].ImageIndex = i + tabControl1.TabPages.Count; 
      } 
      else 
      { 
       tabControl1.TabPages[i].ImageIndex = i; 
      } 
     }