Say I have a form with a long bunch of temperature readouts, so in the designer:
this.lblTemperatureDevice01 = new System.Windows.Forms.Label();
this.lblTemperatureDevice02 = new System.Windows.Forms.Label();
this.lblTemperatureDevice03 = new System.Windows.Forms.Label();
// ...
this.lblTemperatureDevice50 = new System.Windows.Forms.Label();
In the main form code, how do I add the labels to an array so that I can update the labels using a loop in a timer event eg:
private void tmrUpdateLabels_Tick(object sender, EventArgs e)
{
// Disable timer
tmrUpdateLabels.Enabled = false;
if (m_bExiting)
return;
// Update temperatures (if device has returned a reading)
for (int device = 0; device < MAX_DEVICES; device++)
{
if (m_aHasNewReading[device])
{
m_aHasNewReading[device] = false;
labels[device].Text = m_aTemperature[device].ToString();
}
}
// Restart timer
tmrUpdateLabels.Enabled = true;
}
How do I create the labels[MAX_DEVICES] array? Must I use:
private Label[] labels = new Label[MAX_DEVICES];
or is there a way to get a reference (or pointer) to the existing label(s) without creating new labels? Coming from a C++ background where I might have simply stored the address of each label in an array.
Aucun commentaire:
Enregistrer un commentaire