讓自定義控制項成為容器

2022-03-13 19:23:45 字數 947 閱讀 4603

我希望自定義的控制項開啟後,可以將工具欄上的控制項拖到該自定義控制項上。觀察了pannel控制項,似乎簡單得很。

繼承自scrollablecontrol,而scrollablecontrol繼承自control。兩個類都沒有重寫繪製,只是增加一些屬性和重寫某些屬性值。而control有乙個controls的集合屬性。似乎已做了大部分的事。

我嘗試直接往control.controls新增乙個button

**public

class

trackpannel:control

button btn 

=new

button();

btn.click 

+=new

eventhandler(btn_click);

this

.controls.add(btn);

} //

button能正常顯示,並接收到點選事件。證明我的想法是對的。再細看scrollablecontrol,原來需要兩步

1.設定controlstyles.containercontrol

2.設定designer

以下是修改後的**。

**[designer(

"system.windows.forms.design.parentcontroldesigner,system.design",

typeof

(system.componentmodel.design.idesigner))]

public

class

trackpannel:control

//...

「base

.setstyle(controlstyles.userpaint, 

true

);」是告訴程式用控制項自己重寫的onpaint。重寫了還不行,還要非得設定這個!一時半會,

真讓人摸不著邊。

自定義控制項 容器控制項

今天想做個自定義容器控制項,但是在網上找了半天都沒有找到,可以在對應的panel裡進行拖拽控制項的,多以今天寫一下關於怎麼做乙個自定義容器控制項 自定義容器控制項需要在自定義控制項中加入 1 browsable false designerserializationvisibility design...

自定義控制項 自定義鐘錶

private context mcontext 畫筆 private paint mpaint 控制項的寬 private int mwidth x方向的圓心座標 private int center 鐘錶的半徑 private int mradio 圓環的寬 private int stroke...

自定義控制項

首先是以下這幾項,attribute defaultproperty指定元件的預設屬性,toolboxdata指定當從ide工具中的 工具箱中拖動自定義控制項時為它生成的預設標記 defaultproperty text toolboxdata mycontrol runat server 上面這些...