2010-10-19 24 views
0

je les contrôles TrackBar suivants que j'ai ajouté à un tabpage « tab1 »:comment puis-je lire les données d'un tableau de commande en C#

   TrackBar[] tbs = new TrackBar[nooftbsneeded]; 


       // Add TrackBars 
       TrackBar tbx = new TrackBar(); 
       tbx.Location = new Point(28, 150 + (i * 200)); 
       tbx.Size = new Size(686, 45); 
       tbx.Minimum = 0; 
       tbx.Maximum = 16; 
       tbx.SmallChange = 1; 
       tbx.LargeChange = 2; 
       tbx.Value = 8; 

       // create events (using a lambda expression) for each trackbar to change values. 
       tbx.Scroll += (o, a) => 
       { 
        // Update text values 
        if (tbx.Value == 0) 
        { 
         label3x.Text = "Extremely Better"; 
         label4x.Text = ""; 
        } 
        if (tbx.Value == 1) 
        { 
         label3x.Text = "Extremely Better"; 
         label4x.Text = ""; 
        } 
        if (tbx.Value == 2) 
        { 
         label3x.Text = "Very Strongly Better"; 
         label4x.Text = ""; 
        } 
        if (tbx.Value == 3) 
        { 
         label3x.Text = "Very Strongly Better"; 
         label4x.Text = ""; 
        } 
        if (tbx.Value == 4) 
        { 
         label3x.Text = "Strongly Better"; 
         label4x.Text = ""; 
        } 
        if (tbx.Value == 5) 
        { 
         label3x.Text = "Strongly Better"; 
         label4x.Text = ""; 
        } 
        if (tbx.Value == 6) 
        { 
         label3x.Text = "Moderately Better"; 
         label4x.Text = ""; 
        } 
        if (tbx.Value == 7) 
        { 
         label3x.Text = "Moderately Better"; 
         label4x.Text = ""; 
        } 
        if (tbx.Value == 8) 
        { 
         label3x.Text = "Equal"; 
         label4x.Text = "Equal"; 
        } 
        if (tbx.Value == 9) 
        { 
         label3x.Text = ""; 
         label4x.Text = "Moderately Better"; 
        } 
        if (tbx.Value == 10) 
        { 
         label3x.Text = ""; 
         label4x.Text = "Moderately Better"; 
        } 
        if (tbx.Value == 11) 
        { 
         label3x.Text = ""; 
         label4x.Text = "Strongly Better"; 
        } 
        if (tbx.Value == 12) 
        { 
         label3x.Text = ""; 
         label4x.Text = "Strongly Better"; 
        } 
        if (tbx.Value == 13) 
        { 
         label3x.Text = ""; 
         label4x.Text = "Very Strongly Better"; 
        } 
        if (tbx.Value == 14) 
        { 
         label3x.Text = ""; 
         label4x.Text = "Very Strongly Better"; 
        } 
        if (tbx.Value == 15) 
        { 
         label3x.Text = ""; 
         label4x.Text = "Extremely Better"; 
        } 
        if (tbx.Value == 16) 
        { 
         label3x.Text = ""; 
         label4x.Text = "Extremely Better"; 
        } 


       }; 

       tbs[i] = tbx; 
       tab1.Controls.Add(tbs[i]); 

Comment puis-je obtenir maintenant les valeurs individuelles des trackbars?

J'ai essayé toutes les combinaisons d'appel auxquelles je peux penser. Je ne sais pas comment référencer les commandes séparées de la barre de contrôle.

Répondre

0

Assurez-vous que cela est déclaré à votre niveau de classe:

TrackBar[] tbs; 

Ensuite, dans votre méthode, initialisez simplement (sans le redéclarant):

tbs = new TrackBar[nooftbsneeded]; 
// ... Create track bars 

À ce moment-là , vous pouvez lire plus tard les valeurs via:

var value = tbs[3].Value; 
0
foreach(var control in tab1.Controls){ 

    if(control.GetType() == typeof(TrackBar)){ 
     object value = ((TrackBar)control).Value; 
    } 
} 
+0

Merci yo Pour votre réponse, cela a fonctionné avec brio pour un autre morceau de code que j'ai (où j'ai déclaré Trackbars à partir d'une boucle). – RHodgett