// 将控件放到指定的容器内, public void FindContain(PbBaseControlInfo control, int x, int y) { if (control is PbTextInfo) { var tempControl = control as PbTextInfo; if (tempControl.Name == "code") { return; //主键不参与布局 } } //若没有容器 //单grid的情况 或者是 tableLayout if (containers.Count == 0) { if (control is PbGridInfo) { var tempPanel = control as PbGridInfo; grids.Add(ControlConverter.ConvertToExtPanel(tempPanel)); } else { layoutForm.Items.Add(control); } return; } ExtContainer targetContain = new ExtContainer(); int i = 0; do { targetContain.X = containers[i].X; targetContain.Y = containers[i].Y; targetContain.Width = containers[i].Width; targetContain.Height = containers[i].Height; if (x >= targetContain.X && x <= targetContain.X + targetContain.Width && y >= targetContain.Y && y <= targetContain.Y + targetContain.Height) { containers[i].Items.Add(control); break; } i++; } while (i < containers.Count); //if (i == containers.Count) //{ // if (control is PbGridInfo) // { // var tempPanel = control as PbGridInfo; // grids.Add(ControlConverter.ConvertToExtPanel(tempPanel)); // } // else // { // layoutForm.Items.Add(control); // } //} }
//将控件放到指定的容器内 public void FindContain(PbBaseControlInfo control, int x, int y) { if (control is PbTextInfo) { var tempControl = control as PbTextInfo; if (tempControl.Name == "code") { return; //主键不参与布局 } } //若没有容器,放入formpanel if (fieldSets.Count == 0) { formPanel.Items.Add(control); return; } ExtContainer targetContain = new ExtContainer(); int i = 0; do { targetContain.X = fieldSets[i].X; targetContain.Y = fieldSets[i].Y; targetContain.Width = fieldSets[i].Width; targetContain.Height = fieldSets[i].Height; //坐标落入容器里 if (x >= targetContain.X && x <= targetContain.X + targetContain.Width && y >= targetContain.Y && y <= targetContain.Y + targetContain.Height) { fieldSets[i].Items.Add(control); break; } i++; } while (i < fieldSets.Count); }
//将控件放到指定的容器内 public void FindContain(PbBaseControlInfo control, int x, int y) { if (control is PbTextInfo) { var tempControl = control as PbTextInfo; if (tempControl.Name == "code") { return; //主键不参与布局 } } if (control.Visible == false && control.ControlType != PbControlType.Grid) { layoutForm.Items.Add(control); return; } //若没有容器 //单grid的情况 或者是 tableLayout if (containers.Count == 0) { if (control is PbGridInfo) { grids.Add(ControlConverter.ConvertToExtPanel((PbGridInfo)control)); } else { layoutForm.Items.Add(control); } return; } else { //有容器(就是pb的groupbox和ng3中的fieldset) ExtContainer targetContain = new ExtContainer(); int i = 0; do { targetContain.X = containers[i].X; targetContain.Y = containers[i].Y; targetContain.Width = containers[i].Width; targetContain.Height = containers[i].Height; if ((x * 1.3) >= targetContain.X && (x * 1.3) <= targetContain.X + targetContain.Width && y >= targetContain.Y && y <= targetContain.Y + targetContain.Height) { if (control is PbGridInfo) { containers[i].Panels.Add(ControlConverter.ConvertToExtPanel((PbGridInfo)control)); //此处会把容器内的grid放进去,后期看看是否要改 } else { containers[i].Items.Add(control); } break; } i++; } while (i < containers.Count); //容器外的grid或列 if (i == containers.Count) { if (control is PbGridInfo) { var tempPanel = control as PbGridInfo; grids.Add(ControlConverter.ConvertToExtPanel(tempPanel)); } else { layoutForm.Items.Add(control); } } } }