Как я могу прочитать данные из контрольного массива в C # - PullRequest
0 голосов
/ 19 октября 2010

У меня есть следующие элементы управления трекбаром, которые я добавил на закладку tab1:

               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]);

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

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

Ответы [ 2 ]

0 голосов
/ 19 октября 2010

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

TrackBar[] tbs;

Затем, в вашем методе, просто инициализируйте его (без повторного выделения):

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

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

var value = tbs[3].Value;
0 голосов
/ 19 октября 2010
foreach(var control in tab1.Controls){

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