12

我想更改窗口窗体边框颜色(带有窗体标题的边框)。我在codeplex中找到的示例太多且令人困惑。任何人都可以帮助我做一些更简单的事情吗?

4

6 回答 6

16

覆盖它:

protected override void OnPaint(PaintEventArgs e)
{
    ControlPaint.DrawBorder(e.Graphics, ClientRectangle, Color.[your_color], ButtonBorderStyle.Solid);
}
于 2019-12-25T12:06:23.533 回答
11

不幸的是,由于表单边框是由操作系统绘制的,因此这是一项复杂的任务。没有真正的解决方法。

不要单击下面 CodePlex 页面上的 ProjectDistributor 链接

不过,用于绘制自定义边框的CodePlex 项目使这变得非常容易。只需使用该项目中的 SkinnedForm 而不是标准表单来构建表单,它应该可以工作 - 你真的不需要在代码中做任何不同的事情。

于 2009-09-18T16:07:27.800 回答
8

解决方法 - 只需按照以下步骤操作:

  • 设置FormBorderStyleNone
  • 用面板覆盖表单并留出一些边框空间。
  • 将边框的颜色设置为表单背景颜色。

现在,面板作为主容器,您可以根据需要更改背景,表单作为边框。

最终结果

在此处输入图像描述

于 2017-08-05T19:52:49.713 回答
-1

如前所述,更改边框的实际颜色很困难。上面的面板解决方案有一些限制,比如您无法调整表单大小。我发现了一个相当简单的技巧,没有很多其他限制。

  • 创建表单
  • 将 FormBorderStyle 设置为无
  • 添加 4 个面板
  • 将面板的背景颜色设置为您想要的边框颜色
  • 上、下、左、右各锚一个
  • 将高度(顶部/底部)或宽度(左/右)设置为所需边框的厚度。2或3看起来真的很好。

它看起来像一个边框,它会随着窗口调整大小,您可以将任何其他内容放入您想要的表单中。限制是,您必须将此作为添加到表单的第一件事。

于 2021-01-26T04:00:25.813 回答
-2

在“ForeColor”下方,它们应该是一个名为“FormBorderStyle”的设置,您可以在 VisualStudio 2015 中使用它进行编辑。或者您可以进入控制面板路径应该是这样的“控制面板\外观和个性化\个性化”,它们将是第二个名为“颜色”的设置可以将其更改为您想要的颜色,它将所有程序中的边框颜色更改为您设置的颜色。

于 2017-04-06T19:04:19.497 回答
-8
if (colorDialog1.ShowDialog() == DialogResult.OK)
{
    string color = Convert.ToString(colorDialog1.Color);
    MessageBox.Show("You change the color " + color);
    this.BackColor = colorDialog1.Color; // BackColor is only accessible for this form
}
于 2012-04-12T20:15:12.710 回答