我希望自定义的控件打开后,可以将工具栏上的控件拖到该自定义控件上。观察了Pannel控件,似乎简单得很。

继承自ScrollableControl,而ScrollableControl继承自Control。两个类都没有重写绘制,只是增加一些属性和重写某些属性值。而Control有一个Controls的集合属性。似乎已做了大部分的事。


我尝试直接往Control.Controls添加一个Button

public class TrackPannel:Control
{
//...
    private void drawTrack(Graphics gc,Rectangle rect)
        {
            
int iBottonY = rect.Y + rect.Height;
            
int iCur = 0;
            
//int iIndex = 0;
            while (iCur < rect.Width)
            {
                
//iIndex++;
                iCur = iCur + this.TackSpacing;
                gc.DrawLine(Pens.Black, iCur, 
2, iCur, iBottonY);
            }
            Button btn 
= new Button();
            btn.Click 
+= new EventHandler(btn_Click);
            
this.Controls.Add(btn);
        } 
//

相关文章: