lunedì 14 novembre 2011

How To: Add and Find Control Type.

Mi sono sempre domandato "ma come sarà quando sarò io a fare delle domande sul codice..." e ancora non ho risposta a questa domanda...
Ringrazio tuttavia il personaggio che in questi giorni mi sta ponendo i questi più astratti del pianeta.

Oggi la sua richiesta "meritevole di risposta" è stata...
Ho un controllo il cui scopo è di contenere controlli, questi sono caricati dinamicamente, come faccio a sapere che controlli contiene alla fine del flusso ??

Bhe di metodi ce ne sono davvero tanti per cui è addirittura possibile utilizzare una lambda per le estrazioni specifiche...

Tuttavia il seguente è il più semplice.

Per prima cosa realizziamo un form con 2 bottoni, un flowlayout panel e una listbox.

La forma e l'aspetto lo lascio al vostro estro.

public partial class frmTest : Form
{
int i = 0;

public frmTest()
{
InitializeComponent();
}

private void btnAdder_Click(object sender, EventArgs e)
{
flpMaster.Controls.Add(NewControl());
}


public System.Windows.Forms.Control NewControl()
{

if (i == 0)
{

Label l = new Label();
l.Text = " hahahhah !";

i++;
return l;

}

if (i == 1)
{

TextBox l = new TextBox();
l.Text = "Ma dai ";

i++;
return l;

}


return new RadioButton();
}

private void btnLister_Click(object sender, EventArgs e)
{
lstControls.Items.Clear();

foreach (Control c in flpMaster.Controls)
{
lstControls.Items.Add(c.GetType().ToString());
}

}


Il codice devo essere onesto è il più semplice di questo pianeta, ma tuttavia riesce a dare una visione più o meno completa di quello che era la richiesta iniziale.

Nessun commento: