我有一个带有两个选项卡的TabControl。
如何使选项卡页适应TabControl的宽度,就像下面的屏幕截图所示。
我尝试使用以下代码行,但它也不起作用。
如何使选项卡页适应TabControl的宽度,就像下面的屏幕截图所示。
我尝试使用以下代码行,但它也不起作用。
tabControl1.SizeMode = TabSizeMode.FillToRight;
tabControl1.SizeMode = TabSizeMode.FillToRight;
tabControl1.SizeMode = TabSizeMode.Fixed;
tabControl1.ItemSize = new Size(tabControl1.Width / tabControl1.TabCount, 0);
请注意:1. 值为0表示高度将采用默认值。2. 在向选项卡控件添加选项卡页面后,请重新计算项目大小。考虑在调整控件大小时会发生什么。
根据Jarek的回答进行贡献。如果您希望选项卡宽度在调整TabControl大小时动态更改,您可以通过在TabControl Resize事件上实现此功能来实现:
private bool doNotExecuteResizeEventAgain = true;
private void Tab_Control_Resize(object sender, EventArgs e)
{
if(doNotExecuteResizeEventAgain)
{
int tabWidth = ((int)(tab_Control.Width/tab_Control.TabPages.Count)) - 1;
doNotExecuteResizeEventAgain = false;
tab_Control.ItemSize = new Size(tabWidth, tab_Details.ItemSize.Height);
doNotExecuteResizeEventAgain = true;
}
}
doNotExecuteResizeEventAgain
是因为ItemSize再次调用了Resize事件,因此为了防止循环,我添加了该标志。在TabControl上使用SizeMode:http://msdn.microsoft.com/zh-cn/library/system.windows.forms.tabcontrol.sizemode.aspx