public ControlAttributes GetTopMostControl() { ControlAttributes attr = new ControlAttributes(); int largestIndex = 0; foreach (Control control in this.Controls) { CustomWinForm winForm = control as CustomWinForm; if (winForm != null) { int index = this.Controls.IndexOf(control); if (index >= largestIndex) { largestIndex = index; // update the attr attr.Id = winForm.Id; Point actualPt = getActualPoint(winForm.Location.X, winForm.Location.Y); attr.Xpos = actualPt.X; attr.Ypos = actualPt.Y; Size actualSize = getActualSize(winForm.Size.Width, winForm.Size.Height); attr.Width = actualSize.Width; attr.Height = actualSize.Height; attr.Style = winForm.Style; } } } return(attr); }
public ControlAttributes GetControl(int controlId) { ControlAttributes attr = new ControlAttributes(); foreach (Control control in this.Controls) { CustomWinForm winForm = control as CustomWinForm; if (winForm != null && winForm.Id == controlId) { attr.Id = winForm.Id; Point actualPt = getActualPoint(winForm.Location.X, winForm.Location.Y); attr.Xpos = actualPt.X; attr.Ypos = actualPt.Y; Size actualSize = getActualSize(winForm.Size.Width, winForm.Size.Height); attr.Width = actualSize.Width; attr.Height = actualSize.Height; attr.Style = winForm.Style; break; } } return(attr); }
public void AddControl(ControlAttributes controlAttr) { try { CustomWinForm winForm = new CustomWinForm(controlAttr.Id, controlAttr.Style, this); mControlsDic.Add(controlAttr.Id, winForm); this.Controls.Add(winForm); this.Controls.SetChildIndex(winForm, controlAttr.ZOrder); // set the win size winForm.LatestSize = new Size(controlAttr.Width, controlAttr.Height); Size relativeSize = getRelativeSize(controlAttr.Width, controlAttr.Height); winForm.LatestRelativeSize = relativeSize; winForm.SetWindowSize(relativeSize); // set the win pos winForm.LatestPos = new Point(controlAttr.Xpos, controlAttr.Ypos); Point relativePoint = getRelativePoint(controlAttr.Xpos, controlAttr.Ypos); winForm.LatestRelativePos = relativePoint; winForm.SetWindowLocation(relativePoint.X, relativePoint.Y); // add the tooltip control windowToolTip.SetToolTip(winForm, controlAttr.WindowName); winForm.SetWindowName(controlAttr.WindowName); winForm.Style = (int)(controlAttr.Style); // register the event callback winForm.onDelegateClosedEvt += winForm_onDelegateClosedEvt; winForm.onDelegateMaximizedEvt += winForm_onDelegateMaximizedEvt; winForm.onDelegateMinimizedEvt += winForm_onDelegateMinimizedEvt; winForm.onDelegatePosChangedEvt += winForm_onDelegatePosChangedEvt; winForm.onDelegateRestoredEvt += winForm_onDelegateRestoredEvt; winForm.onDelegateSizeChangedEvt += winForm_onDelegateSizeChangedEvt; Trace.WriteLine(String.Format("Add control - pos:{0},{1} size:{2},{3} : {4},{5}", relativePoint.X, relativePoint.Y, relativeSize.Width, relativeSize.Height, controlAttr.Width, controlAttr.Height)); } catch (Exception e) { Trace.WriteLine(e.Message); } }