Я использую элемент управления Timer, и я хочу установить интервал, равный Proc_BurstTime объекта в ListBox. Я не могу понять, как я могу это сделать.Попытка получить данные структуры из ListBox
Дело в том, что у меня есть несколько вещей, которые разные объекты в ListBox; я хочу, чтобы программа проходила через Proc_BurstTime каждого объекта в списке.
Так, например, у меня есть ProgressBar. Есть 5 вещей, которые в ListBox с этими значениями Proc_BurstTime (в мс): Программа должна перейти к первому объекту в ListBox, установите индикатор на «нагрузки» для X секунд (Proc_BurstTime). Первый будет составлять 5000 мс (5 секунд), индикатор выполнения будет идти от 0 до 100 за 5 секунд, после его завершения он перейдет к следующему, 4000 мс; так и так далее.
Мой вопрос заключается в следующем:
timer1.Interval = initial_ProcessList.Items[0].Proc_BurstTime;
Это ошибка я получаю
* «объекта» не содержит определение для «Proc_BurstTime» и нет методы расширения «Proc_BurstTime» принимая первый аргумент типа «объект» может быть найдено (вы пропали без вести с помощью директивы или ссылка на сборку?) *
Это моя структура и инициализация:
struct process
{
public int Proc_Id;
public int Proc_BurstTime;
public int Proc_Priority;
public override string ToString()
{
return "ID: " + Proc_Id.ToString() + " Time: " + Proc_BurstTime.ToString() + " Prior: " + Proc_Priority.ToString();
}
};
readonly process[] ProcessList = new process[]
{
new process{ Proc_Id = 1, Proc_BurstTime = 5000, Proc_Priority = 1},
new process{ Proc_Id = 2, Proc_BurstTime = 4000, Proc_Priority = 2},
new process{ Proc_Id = 3, Proc_BurstTime = 1000, Proc_Priority = 3},
new process{ Proc_Id = 4, Proc_BurstTime = 7000, Proc_Priority = 4},
new process{ Proc_Id = 5, Proc_BurstTime = 2000, Proc_Priority = 5}
};
И это, как я добавляю вещи к ListBox:
private void Form1_Load(object sender, EventArgs e)
{
foreach (var p in ProcessList)
{
initial_ProcessList.Items.Add(p);
}
}
Вы можете отметить, что [ListBox.ObjectCollection.Item Property] (http://msdn.microsoft.com/ en-us/library/system.windows.forms.listbox.objectcollection.item.aspx) возвращает объект. В стороне вы можете проверить [Почему изменчивые структуры злы?] (Http://stackoverflow.com/q/441309/119477) –