public void addControlWithLabel(FullLabel label, Control edit, Panel panelToBuild) { // Calculamos las posiciones de los controles a añadir label.Location = calculaPosicion(label); ultimoControlAñadido = label; edit.Location = calculaPosicion(edit); ultimoControlAñadido = edit; // Los agregamos al panel. panelToBuild.Controls.Add(label); panelToBuild.Controls.Add(edit); // Cada subclase puede elegir cual es el ultimo control, en base a ello calcula la siguiente posicion. pickLastControl(label, edit); }
public PanelBuilder AddControlWithLabel(string p_strTexto, Control p_ctrEdit) { FullLabel l_flLabel = new FullLabel(); l_flLabel.Text = p_strTexto; l_flLabel.Size = this.tamañoLabels; l_flLabel.BackColor = Color.Transparent; p_ctrEdit.Size = this.getSizeForControl(p_ctrEdit); p_ctrEdit.TabIndex = tabOrder++; // Delegamos, el añadir los controles creados, en el objeto que maneja la alineacion y las posiciones. alignment.addControlWithLabel(l_flLabel, p_ctrEdit, this.getPanel); return(this); }
internal abstract Point calculaPosicion(FullLabel control);
internal abstract void pickLastControl(FullLabel label, Control edit);
// El calculo de la poscion de un label es igual al del control, se diferencian en la separacion solamente. internal override Point calculaPosicion(FullLabel label) { return(calculaPosicion((Control)label)); }
internal override void pickLastControl(FullLabel label, Control edit) { }
internal override Point calculaPosicion(FullLabel control) { return(new Point(1, 1)); }