public static MultiChoice getBuilder(Equities stocks) { if (stocks.count() <= 3) { return(new CheckChoice(stocks)); } else { return(new ListChoice(stocks)); } }
private void LsEquities_SelectedIndexChanged(object sender, EventArgs e) { //Esta linea remueve incialmente el panel de datos para que cada vez que se seleccione un elemento del ListBox //diferente se agregue nuevamente al final con los nuevos datos, esto es con el fin de "Refrescar" el panel //de lo contrario se seguirán mostrando los datos de la selección anterior Controls.Remove(pnlDatos); int i = lsEquities.SelectedIndex; Equities eq = (Equities)lista[i]; mchoice = StockFactory.getBuilder(eq); pnl = mchoice.getWindow(); pnlDatos = mchoice.getWindow(); Controls.Add(pnlDatos); //Esto solo posiciona al control dentro de la ventana pnlDatos.SetBounds(400, 50, 800, 800); }
//Se agrega un ListBox de acuerdo a la cantidad de registros obtenidos del array public ListChoice(Equities stks) { stocks = stks.getNames(); panel = new Panel(); list = new ListBox(); //posicionamos los controles list.Location = new Point(16, 0); list.Size = new Size(120, 160); list.SelectionMode = SelectionMode.MultiExtended; list.TabIndex = 0; panel.Controls.Add(list); for (int i = 0; i < stocks.Count; i++) { list.Items.Add(stocks[i]); } }
//Se agregan CheckBoxs de acuerdo a la cantidad de registros obtenidos del array public CheckChoice(Equities stks) { stocks = stks.getNames(); panel = new Panel(); boxes = new ArrayList(); for (int i = 0; i < stocks.Count; i++) { CheckBox ck = new CheckBox(); //posicionamos los CheckBox ck.Location = new Point(8, 16 + i * 32); string stk = (string)stocks[i]; ck.Text = stk; ck.Size = new Size(112, 24); ck.TabIndex = 0; ck.TextAlign = ContentAlignment.MiddleLeft; boxes.Add(ck); panel.Controls.Add(ck); } }