【问题标题】:Removing Border from WinForms UserControl从 WinForms UserControl 中删除边框
【发布时间】:2020-05-18 16:12:32
【问题描述】:

我有内部带有黑色边框的 UserControl。我想移除边框或更改其颜色。

.

找到解决方案,但它没有删除边框:

public FolderView() {
    InitializeComponent();
    base.BorderStyle = BorderStyle.None;
    this.BorderStyle = BorderStyle.None;
}

private BorderStyle border;

public new BorderStyle BorderStyle {
    get { return border; }
    set {
        border = value;
        Invalidate();
    }
}

控制来自这个project

更新: 我正在尝试绘制新边界。在TreeListView 类中OnPaint 方法的末尾添加了这些代码行:

Rectangle rect = base.ClientRectangle;
ControlPaint.DrawBorder(e.Graphics, rect, Color.DarkBlue, ButtonBorderStyle.Solid);

但是,垂直滚动条画在我的边框上。如何解决这个问题?还在FolderViewTree 类中尝试了相同的代码,但滚动条将边框推向左侧(我希望在边框内保持原来的滚动条)。

【问题讨论】:

  • 您可以在其设计器中删除用户控件的边框。这不是你想要的吗?您链接的项目显示带有子控件的用户控件。也删除设计器中子控件的边框。如果您想更改颜色,您可以围绕其边界绘制一个矩形。或者在可能的情况下绘制背景。或者使用基础容器(嵌套两个控件)
  • 边框是在用户控件上还是在用户控件内部的控件上?
  • this answer of mine 有什么想法吗?
  • 或者this question of mine(连同答案)。
  • 那是 TreeView 的边框,不是 UserControl 的边框。只需通过设计器将其设置为无。

标签: c# winforms


【解决方案1】:

在cmets中提到,边框属于TreeView。 附件是设计器的屏幕截图,您应该将边框更改为None。 (目前设置为FixedSingle)。

【讨论】:

    猜你喜欢
    • 2023-02-14
    • 2014-07-23
    • 1970-01-01
    • 2010-10-21
    • 2010-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多