C# winform 控件 要类似Panel那样的边框
现在要类似Panel这样的,从左边工具栏拖到界面上的时候,能有个虚框, 如果没有的话, 当控件失去焦点的时候更本看不到改控件的了。
代码如下,我该怎么修改应该加哪些属性, 当然运行的时候不能有的,
C# code
public class DrawImageControl : Control
{
public DrawImageControl()
{
SetStyle(ControlStyles.OptimizedDoubleBuffer|ControlStyles.AllPaintingInWmPaint, true);
SetStyle(ControlStyles.UserPaint|ControlStyles.ContainerControl , true );
images = getImages();
timer1 = new Timer();
// this.BackColor = Color.Black ;
}
}
如果仅仅为了解决这样的问题,我直接继承Panel是可以的,但是 我就想继承Control,怎么也能达到Panel的那样效果,便于开发人员找到改控件。
------解决方案--------------------自定义组件,获得焦点时,在OnPaint中画一个矩形虚线框就行了
------解决方案--------------------Onpain中
增加 DesignMode 的判断条件
------解决方案--------------------继承OnPaint事件,在里面画虚框。