请问关于c的具体应用场景有哪些?

2026-04-29 00:572阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计397个文字,预计阅读时间需要2分钟。

请问关于c的具体应用场景有哪些?

如何构建一个以列表作为参数的用户控件,例如:

你需要这样的东西。

请问关于c的具体应用场景有哪些?

如何构建一个以列表作为参数的用户控件,即:

<foo:TabMenu runat="server"> <Tabs> <Tab Label="Tab1" PanelId="pnlTab1"/> <Tab Label="Tab2" PanelId="pnlTab2"/> <Tab Label="Tab3" PanelId="pnlTab3"/> </Tabs> </foo:TabMenu> 你需要这样的东西.一切都很好,但你必须完成TabCollection类.

编辑:原谅我,我没有测试代码.无论如何发现一些问题所以解决了他们.

用户控件

[ParseChildren(true, "Tabs"), PersistChildren(false)] public partial class TabMenu : UserControl { private TabCollection _tabs; [Browsable(false), PersistenceMode(PersistenceMode.InnerProperty), MergableProperty(false)] public virtual TabCollection Tabs { get { if (this._tabs == null) this._tabs = new TabCollection(this); return this._tabs; } } protected override ControlCollection CreateControlCollection() { return new TabMenuControlCollection(this); } }

标签

public class Tab : HtmlGenericControl { public string Label { get { return (string)ViewState["Label"] ?? string.Empty; } set { ViewState["Label"] = value; } } }

TabCollection

public class TabCollection : IList, ICollection, IEnumerable { private TabMenu _tabMenu; public TabCollection(TabMenu tabMenu) { if (tabMenu == null) throw new ArgumentNullException("tabMenu"); this._tabMenu = tabMenu; } public virtual int Add(Tab tab) { if (tab == null) throw new ArgumentNullException("tab"); this._tabMenu.Controls.Add(tab); return this._tabMenu.Controls.Count - 1; } int IList.Add(object value) { return this.Add((Tab)value); } // You have to write other methods and properties as Add. }

TabMenuControlCollection

public class TabMenuControlCollection : ControlCollection { public TabMenuControlCollection(TabMenu owner) : base(owner) { } public override void Add(Control child) { if (child == null) throw new ArgumentNullException("child"); if (!(child is TabMenu)) throw new ArgumentException("The TabMenu control can only have a child of type 'Tab'."); base.Add(child); } public override void AddAt(int index, Control child) { if (child == null) throw new ArgumentNullException("child"); if (!(child is TabMenu)) throw new ArgumentException("The TabMenu control can only have a child of type 'Tab'."); base.AddAt(index, child); } }

标签:用户

本文共计397个文字,预计阅读时间需要2分钟。

请问关于c的具体应用场景有哪些?

如何构建一个以列表作为参数的用户控件,例如:

你需要这样的东西。

请问关于c的具体应用场景有哪些?

如何构建一个以列表作为参数的用户控件,即:

<foo:TabMenu runat="server"> <Tabs> <Tab Label="Tab1" PanelId="pnlTab1"/> <Tab Label="Tab2" PanelId="pnlTab2"/> <Tab Label="Tab3" PanelId="pnlTab3"/> </Tabs> </foo:TabMenu> 你需要这样的东西.一切都很好,但你必须完成TabCollection类.

编辑:原谅我,我没有测试代码.无论如何发现一些问题所以解决了他们.

用户控件

[ParseChildren(true, "Tabs"), PersistChildren(false)] public partial class TabMenu : UserControl { private TabCollection _tabs; [Browsable(false), PersistenceMode(PersistenceMode.InnerProperty), MergableProperty(false)] public virtual TabCollection Tabs { get { if (this._tabs == null) this._tabs = new TabCollection(this); return this._tabs; } } protected override ControlCollection CreateControlCollection() { return new TabMenuControlCollection(this); } }

标签

public class Tab : HtmlGenericControl { public string Label { get { return (string)ViewState["Label"] ?? string.Empty; } set { ViewState["Label"] = value; } } }

TabCollection

public class TabCollection : IList, ICollection, IEnumerable { private TabMenu _tabMenu; public TabCollection(TabMenu tabMenu) { if (tabMenu == null) throw new ArgumentNullException("tabMenu"); this._tabMenu = tabMenu; } public virtual int Add(Tab tab) { if (tab == null) throw new ArgumentNullException("tab"); this._tabMenu.Controls.Add(tab); return this._tabMenu.Controls.Count - 1; } int IList.Add(object value) { return this.Add((Tab)value); } // You have to write other methods and properties as Add. }

TabMenuControlCollection

public class TabMenuControlCollection : ControlCollection { public TabMenuControlCollection(TabMenu owner) : base(owner) { } public override void Add(Control child) { if (child == null) throw new ArgumentNullException("child"); if (!(child is TabMenu)) throw new ArgumentException("The TabMenu control can only have a child of type 'Tab'."); base.Add(child); } public override void AddAt(int index, Control child) { if (child == null) throw new ArgumentNullException("child"); if (!(child is TabMenu)) throw new ArgumentException("The TabMenu control can only have a child of type 'Tab'."); base.AddAt(index, child); } }

标签:用户