2010-10-19 4 views
0

У меня есть следующие элементы управления TrackBar, которые я добавлял к TabPage «Tab1»:как я читать данные из массива элементов управления в 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]); 

Как теперь получить отдельные значения trackbars?

Я пробовал каждую комбинацию звонка, о которой я могу думать .. Я просто не знаю, как ссылаться на отдельные элементы управления трекболом.

ответ

0

Убедитесь, что декларируется на вашем уровне класса:

TrackBar[] tbs; 

Тогда в вашем методе, просто инициализировать его (без повторного объявления его):

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

В этот момент , вы можете позже считывать значения через:

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

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

Thank yo u для вашего ответа, это блестяще работало для другого кода, который у меня есть (где у меня есть незаявленные трекбарды из цикла). – RHodgett

Смежные вопросы