C#从Windows窗体中的TabPages中删除填充

时间:2012-04-04 20:05:49

标签: c# .net winforms tabcontrol tabpage

标签页边框和内部控件之间有一个填充。有没有办法删除这个填充?

这是必要的,因为如果停靠在父容器中,TabControl看起来会很糟糕。

我尝试了一些覆盖方法,但它没有用。

1 个答案:

答案 0 :(得分:5)

我发现可以使用WndProc

来实现
public class TabControl2 : TabControl
{
    protected override void WndProc(ref Message m)
    {
        if (m.Msg == 0x1300 + 40)
        {
            RECT rc = (RECT)m.GetLParam(typeof(RECT));
            rc.Left -= 7;
            rc.Right += 7;
            rc.Top -= 2;
            rc.Bottom += 7;
            Marshal.StructureToPtr(rc, m.LParam, true);
        }
        base.WndProc(ref m);
    }
}

public struct RECT
{
    public int Left, Top, Right, Bottom;
}