C#如何移除SplitContainer控件的边框?

5

enter image description hereenter image description here

你好,我该如何去掉围绕splitcontainer.panel的边框?如图所示,左侧是执行后的效果,右侧是VS。panel已经以编程方式设置了dock.left,而且窗体背景颜色与面板相同,因此我认为这就是边框。我尝试了一些代码,但不起作用,包括下面这个,但只对tabcontrol起作用:

    protected override void WndProc(ref Message m)
    {
    // Hide the tab headers at run-time
    if (m.Msg == 0x1328 && !DesignMode)
    {
        m.Result = (IntPtr)1;
        return;
    }

    // call the base class implementation
    base.WndProc(ref m);
    }

如何隐藏这个边框?请帮忙:\

你截图中的深灰色部分是面板中的某个控件吗? - Sergey Berezovskiy
应该有SplitContainer的属性,类似于背景、描边或其他什么东西。 - fhnaseer
--你截图中的深灰色部分是面板中的某个控件吗?不,那是Win8窗口。 --应该有SplitContainer的属性..我已经看过所有属性了,没有这个功能:\ - Luis Granado
1
@LuisGranado 我建议您添加 Windows 8 应用程序的屏幕截图,以便更清楚地了解问题。因为我在 Win 7 上没有看到任何边框。 - Sergey Berezovskiy
1
@LuisGranado 或许你应该也发布一下你的 InitializeComponent() 方法,这将有助于其他人重现你的问题。仅仅根据截图很难确定你的表单出了什么问题... - IronGeek
1个回答

2

虽然我使用的是win7,但我会尝试回答您的问题。

如下图所示,您拥有典型的SplitContainer。它由以下组成:

  • SplitContainer背景色;
  • 面板1的背景色
  • 面板2的背景色
  • 父容器的背景色

enter image description here

在您的屏幕截图中,您正在编辑表单,在设计模式下,您可以看到代表面板边距的虚线。我也有这些。没问题。

不好的是您屏幕截图的左侧部分。突然间,您的表单被嵌套在某个东西里面。这个东西导致了这种效果。我认为可能有Padding(不是0;0;0;0)或者您的表单具有Margin(不是0;0;0;0),或者可能是一些故障,例如您的表单嵌入到另一个表单中(由于非客户区域未被绘制或其他任何原因)。

编辑

尝试为以下内容显式设置颜色(像我一样设置一些疯狂的颜色):splitcontainer、panel1、panel2和父容器(无论它是什么)。然后发布一个屏幕截图。我非常确定,一旦您这样做,就会看到问题。


你说得对,我现在把绿色放上去,就可以看到错误在哪里了。当我把dock.Left放在面板上时,它没有完全接触。我该怎么办才能让它接触呢? - Luis Granado
将该面板(您在其中放置分割容器的面板)的“Padding”设置为“0;0;0;0”。 - Sinatr
splitcontainer1.panel的padding设为0;0;0;0就解决了一切问题。谢谢你,朋友,我欠你一瓶啤酒 :) - Luis Granado

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接