5

当我将 TabControl 对齐设置为LeftRight时,它会在选项卡按钮和选项卡页面区域之间留下这个巨大的空间。如何摆脱这个无用的空间?

TabControl.Appearance设置为,Buttons因为如果设置为Normal按钮上的文本消失。

选项卡控件

更新:
当我设置TabControl.AlignmentBottom按钮TabControl.Appearance看起来Normal倒置(橙色线应该在下面)
选项卡控件

当我设置TabControl.AlignmentBottomTabControl.AppearanceButtons,没有区域TabPage可以放置控件
在此处输入图像描述

4

2 回答 2

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);
}
于 2011-02-08T00:41:37.467 回答
0

Microsoft 文档 与此问题相关的备注

当 Alignment 属性设置为 Left 或 Right 时,Multiline 属性将自动设置为 true。

当您将 Appearance 属性设置为 FlatButtons 时,它仅在 Alignment 属性设置为 Top 时才会显示。否则,Appearance 属性将显示为设置为 Buttons 值。

当您将 Appearance 属性设置为 Buttons 时,您还必须将 Alignment 属性设置为 Top,这样按钮才能正确显示。

笔记

将 Appearance 属性设置为 Buttons 时,还必须将 Alignment 属性设置为 Top,以便标签页内容正确显示。此外,启用视觉样式并将 Alignment 属性设置为 Top 以外的值时,选项卡内容可能无法正确呈现。

于 2019-05-09T13:45:06.277 回答