在Panel
的属性中,我将边框样式设置为Fixed Single
。
当我运行我的应用程序时,它的颜色为灰色。我不知道如何改变颜色。
我已经在面板的Paint
事件处理程序中尝试过了:
private void HCp_Paint(object sender, PaintEventArgs e)
{
Panel p = sender as Panel;
ControlPaint.DrawBorder(e.Graphics, p.DisplayRectangle, Color.Yellow, ButtonBorderStyle.Inset);
}
这将显示如下边框:
但我想要一个固定的单一边界,像这样:
如何将边框设置为黄色?
6条答案
按热度按时间jtjikinw1#
如果你不想像@Sinatr的回答中建议的那样制作一个自定义面板,你可以自己绘制边框:
knpiaxh12#
您可以创建自己的
Panel
类并在客户区中绘制边框:ldfqzlk83#
如果你不想麻烦地给一个面板划分子类,你可以创建另一个面板,每个尺寸大2个像素,使其成为边框颜色,并将其直接放置在需要边框的面板后面。这只是在IDE中点击几下...
xjreopfe4#
我发现this post很有用
我还将面板的填充设置为边框的厚度,这样面板内的控件就不会与边框重叠并隐藏它。在我的例子中,我没有使用填充,所以这是一个很好的解决方案,但是如果你也计划使用填充来显示边框,事情可能会变得更加棘手。
u5i3ibmn5#
这也对我起作用:
边框样式的问题是由于ButtonBorderStyle选项“Inset”。通过选择“ButtonBorderStyle.Solid”你得到一条线(也有点线,虚线.可用)。
对于许多面板,我同意最好的解决方案是创建自己的类,继承自Panel并覆盖Paint方法。
ghg1uchk6#
在创建自定义面板时的解决方法之后。当子控件的大小>面板的大小时,我被迫应用另一个调整来解决边框重叠问题。在调整中,面板不是绘制其边框,而是由父控件绘制。