/// <summary> /// 折叠图片背景图发生变化时触发的事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void pb_zhankai_BackgroundImageChanged(object sender, EventArgs e) { if (_zhankai) { //如果是展开状态,从数据库中获得该节点全部的子节点,然后循环实例化标签control,调整childrenindex,插入到容器中 Panel p = this.Parent as Panel; int index = p.Controls.GetChildIndex(this); for (int i = 0; i < _bqInfo._childNodes.Count; i++) { BiaoqianControl myuc = new BiaoqianControl(_bqInfo._childNodes[i]); p.Controls.Add(myuc); p.Controls.SetChildIndex(myuc, index); } } else { Panel p = this.Parent as Panel; //如果是折叠状态,循环判断biaoqiancontrol的标签信息的父标签名,如果等于父标签名称,那么展开状态改为折叠, int index = p.Controls.IndexOf(this); for (int i = index - 1; i >= 0; i--) { if ((p.Controls[i] as BiaoqianControl)._bqInfo._jibie > _bqInfo._jibie) { p.Controls.Remove(p.Controls[i]); } } } }
/// <summary> /// 传递一个标签信息实例进来,显示在界面上 /// </summary> /// <param name="_bqInfo">内容标签</param> public BiaoqiankuControl(TagInfo _bqInfo) { InitializeComponent(); this.Dock = DockStyle.Top; cb_biaoqianku.Text = _bqInfo._kuming; _mybqInfo = _bqInfo; //实例化一个标签info控件 BiaoqianControl myuc = new BiaoqianControl(_mybqInfo) { }; panel_biaoqian.Controls.Add(myuc); }