求救高手:[C#]WebControl自定义控件,索引器,集合类,子控件的问题!!
一gant 图!
我要做一个控件,包括一个Table,和若干条vml线。然后生成.dll,最后能在vs.net的工具箱重托拽过来并在属性才单中设置属性,包括没一条vml线的属性!!!
要实现这样的地东西:
WebVmlCtrl vml= new WebVmlCtrl();
vml[0].Color="red";
是不是类的结构不对??那应该怎么写???
-------------------------------------
部分代码:
namespace WebVmlCtrl
{
public class WebVmlCtrlControlBuilder : ControlBuilder
{
public override Type GetChildControlType(String tagName, IDictionary attributes)
{
if (String.Compare(tagName, "customitem", true) == 0)
{
return typeof(WebCustomControl1.Vline);
}
return null;
}
}
public class WebCustomControl1 : System.Web.UI.WebControls.WebControl
{
private string text;
public string Text
{
get
{
return text;
}
set
{
text = value;
}
}
protected override void Render(HtmlTextWriter output)
{
Vline Vlines;
Text = jsEvent();
Text += "<div id='wins' style='height:200;width:200;overflow:auto ;background:#EEEEEE;'>";
//问题在这把,我如果调用这段东西。每次到这里Controls.Count =0!!!!!
for(int i = 0 ; i < Controls.Count ; i++ )
{
Vlines = (Vline) Controls[i];
Text += ((Vline) Controls[i]).Vml ;
}
Text += "</div>";
output.Write(Text);
}
//自定义vml line的属性设置。或者是给子控件?
public class Vline
{
private string vname="vml";
private int vxpt=0;
private int vypt=100;
private string vcolor="black";
private int vheight=3;
private int vlength=100;
private int vindex=0;
private string vml= "";
}
public string Vml
{
get
{
return vml="<vml:line>";
}
}
}
}