日期:2014-05-18  浏览次数:20825 次

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事件,在里面画虚框。