using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Windows.Forms; using Payroll.BO; using System.Reflection; using Ease.CoreV35; using Ease.CoreV35.Model; namespace Payroll.Controls.CustomControls { public partial class ctlDpanel : Panel { private int _SequenceNo = 0; public int SequenceNO { get { return _SequenceNo; } set { _SequenceNo = value; } } public ctlDpanel() { InitializeComponent(); } private void UpdateConfig() { ConfigurationManager manager = new ConfigurationManager(); ObjectsTemplate items = manager.GetChilds(this.Tag.ToString(), EnumConfigurationType.Logic); if (items == null || items.Count ==0) return; foreach (Control ctl in this.Controls) { ctlDpanel dPanel = ctl as ctlDpanel; if (dPanel!=null) { //Tag contain empty string, it means it is not under configuration if (dPanel.Tag.ToString() == "") continue; dPanel.Visible = false; Configaration ownConfigure = manager.GetItem(items, dPanel.Tag.ToString()); if(ownConfigure==null)continue; bool valid = (ownConfigure.Value.ToUpper() =="YES")?true:false; dPanel.Visible = valid; } } } public void RefreshMe() { // UpdateConfig(); int totalVisiblePanel = 0; int selfHeight = 0; foreach (Control ctl in this.Controls) { if (ctl is ctlDpanel && ctl.Visible ==true) { totalVisiblePanel++; selfHeight = ctl.Height > selfHeight ? ctl.Height : selfHeight; } } if(totalVisiblePanel==0)return; int[] nTops = new int[totalVisiblePanel]; int nFreeSpace = (this.Height - selfHeight * totalVisiblePanel) / (totalVisiblePanel + 1); int ntop = nFreeSpace; for (int i = 0; i < totalVisiblePanel; i++) { nTops[i] = ntop; ntop = ntop + nFreeSpace + selfHeight; } for (int i = 1, j = 0; i <= totalVisiblePanel; i++) { foreach (Control ctl in this.Controls) { ctlDpanel dPanel =ctl as ctlDpanel; if (dPanel != null && dPanel.Visible == true) { if (dPanel.SequenceNO == i) { ctl.Top = nTops[j]; j++; } } } } } } }