【发布时间】:2013-08-15 04:44:41
【问题描述】:
我在尝试制作面板边框时遇到问题,首先我将我的属性面板设置为:"AutoScroll = true;" 然后我将边框绘制代码放在面板事件中:
ControlPaint.DrawBorder(e.Graphics,
ClientRectangle,
Color.Black, 5,
ButtonBorderStyle.Solid,
Color.Black, 5, ButtonBorderStyle.Solid,
Color.Black, 5, ButtonBorderStyle.Solid,
Color.Black, 5, ButtonBorderStyle.Solid);
实际上我还有第二个问题,我会在这里解释一切。我希望你不介意。 好吧,当面板滚动处于活动状态时,面板边框会崩溃。看一下图片:
即使我放了
`e.Graphics.TranslateTransform(this.AutoScrollPosition.X, this.AutoScrollPosition.Y);`
它看起来不像边框面板,因为它只是在滚动处于活动状态时在面板内绘制一个矩形。这不是我所期望的,但我需要一个边框
我敢打赌,问题是源代码,那不是因为它不可能,看看System.Windows.Forms.Panel我认为它是完美的面板,虽然它很简单。 请帮我解决这个问题。这让我很困惑
【问题讨论】:
-
你为什么不使用
FlowLayoutPanel? -
@DonA 我猜它会发生同样的问题。因为我的意思是:我们如何用我自己的带有代码的自定义绘图来绘制面板的边框。当我们使用活动滚动绘制自己的边框时会出现问题。所以即使我们使用 FlowLayoutPanel 我猜也会出现同样的问题,因为 FlowLayoutPanel 也有一个 AutoScroll
-
我的意思是在您的
Panel中添加一个FlowLayoutPanel- 绘制您的面板并且内容滚动而不会弄乱您的自定义边框。
标签: c# .net custom-controls panel system.drawing