当我将TabControl对齐设置为Left
或Right
时,它会在标签按钮和标签页区域之间留下这么大的空间。如何摆脱这个无用的空间?
TabControl.Appearance
设置为Buttons
,因为如果设置为Normal
,则按钮上的文字会消失。
更新:
当我将TabControl.Alignment
设置为Bottom
并将TabControl.Appearance
设置为Normal
时,按钮看起来是倒置的(橙色线应位于下方)
当我将TabControl.Alignment
设置为Bottom
而TabControl.Appearance
设置为Buttons
时,TabPage
上没有区域可以设置控件
答案 0 :(得分:5)
这是本机选项卡控件的XP视觉样式实现的一个众所周知的问题,只有与顶部对齐的选项卡才能正确呈现。直到Windows 7才解决此错误。解决方法是有选择地关闭样式。在项目中添加一个新类并粘贴下面显示的代码。编译。将新控件从工具箱顶部拖放到表单上,然后根据自己的喜好更改Alignment属性。它不会比那更漂亮。
using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
class FixedTabControl : TabControl {
protected override void OnHandleCreated(EventArgs e) {
SetWindowTheme(this.Handle, "", "");
base.OnHandleCreated(e);
}
[DllImportAttribute("uxtheme.dll")]
private static extern int SetWindowTheme(IntPtr hWnd, string appname, string idlist);
}
答案 1 :(得分:0)
Microsoft documentation Remarks related to this issue
当Alignment属性设置为Left或Right时,多行 属性会自动设置为true。
将外观属性设置为FlatButtons时,它仅出现 例如,当Alignment属性设置为Top时。否则, 外观属性显示为设置为“按钮”值。
将外观属性设置为按钮时,还必须将 将Alignment属性设置为Top,以便正确显示按钮。
注意
将外观属性设置为按钮时,还必须将 对齐属性为“顶部”,以便显示标签页内容 正确地。此外,启用视觉样式后, Alignment属性设置为除Top之外的其他选项卡内容 可能无法正确呈现。