TabControl ItemsCG with tabpage image
TabControl ItemSize with TabPage ImageKey
我有一个 TabControl
,我想在其中将选项卡保持为固定大小,并且我希望选项卡中有图标。我设置了 TabControl.SizeMode = Fixed
和 TabControl.ItemSize = 100, 18
。我还设置了 TabControl.ImageList
并通过 TabPage.ImageKey
将图像分配给选项卡。
下面是我注释掉分配 ImageKey
:
时的样子
这是我分配 ImageKey
:
时的样子
图标有某种 "alignment" 吗?我希望它们位于空白 space 的最左侧,但它们从文本开始的地方开始。有什么建议吗?
(顺便说一句 - 如果我设置 TabControl.SizeMode = Normal
,我会按照我想要的方式获取选项卡内容,但选项卡的大小不是固定的):
我可以通过 TabControl.SizeMode = Fixed
(在 Windows 10)验证您遇到的问题。我最初是在用图标配置 TabPage
时在设计器中看到的。然而,令人恼火的是,如果关闭并重新打开设计器,问题就会自行纠正。这表明某种 window 样式设置,并且有一些 Tab Control Styles set in the CreateParams Property 基于 SizeMode
属性。但是,我没有找到尝试应用 TCS_FORCEICONLEFT
样式的解决方案。如果在显示控件之前设置了 ImageIndex
属性,则对齐方式符合要求。所以我认为必须在句柄创建时配置一些东西。
如果您在设置 TabPage.ImageIndex 属性 后调用表单的 RecreateHandle
方法,表单将重新绘制并且看起来一切正常。但是,这会导致表单 闪烁 。在 TabControl 上调用 Control.RecreateHandle 方法也可以。这是一个受保护的方法,需要使用派生的 TabControl 来公开该方法,或者您可以使用反射来调用该方法。
public class MyTC : TabControl
{
public void FixIcon()
{
RecreateHandle();
}
}
我有一个 TabControl
,我想在其中将选项卡保持为固定大小,并且我希望选项卡中有图标。我设置了 TabControl.SizeMode = Fixed
和 TabControl.ItemSize = 100, 18
。我还设置了 TabControl.ImageList
并通过 TabPage.ImageKey
将图像分配给选项卡。
下面是我注释掉分配 ImageKey
:
这是我分配 ImageKey
:
图标有某种 "alignment" 吗?我希望它们位于空白 space 的最左侧,但它们从文本开始的地方开始。有什么建议吗?
(顺便说一句 - 如果我设置 TabControl.SizeMode = Normal
,我会按照我想要的方式获取选项卡内容,但选项卡的大小不是固定的):
我可以通过 TabControl.SizeMode = Fixed
(在 Windows 10)验证您遇到的问题。我最初是在用图标配置 TabPage
时在设计器中看到的。然而,令人恼火的是,如果关闭并重新打开设计器,问题就会自行纠正。这表明某种 window 样式设置,并且有一些 Tab Control Styles set in the CreateParams Property 基于 SizeMode
属性。但是,我没有找到尝试应用 TCS_FORCEICONLEFT
样式的解决方案。如果在显示控件之前设置了 ImageIndex
属性,则对齐方式符合要求。所以我认为必须在句柄创建时配置一些东西。
如果您在设置 TabPage.ImageIndex 属性 后调用表单的 RecreateHandle
方法,表单将重新绘制并且看起来一切正常。但是,这会导致表单 闪烁 。在 TabControl 上调用 Control.RecreateHandle 方法也可以。这是一个受保护的方法,需要使用派生的 TabControl 来公开该方法,或者您可以使用反射来调用该方法。
public class MyTC : TabControl
{
public void FixIcon()
{
RecreateHandle();
}
}