我希望自定义的控件打开后,可以将工具栏上的控件拖到该自定义控件上。观察了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);
}
//
{
//...
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);
}
//