127
{
get { return _timeElapsed; }
set
{
// Обновить таймер
int seconds_remaining = value;
_timeElapsed = seconds_remaining;
lblTimer.Text = seconds_remaining < 60
? $"{seconds_remaining } сек."
: $"{seconds_remaining / 60} мин.";
// Обновить визуализацию таймера
// Создание графического объекта
Bitmap pictureBitmap = new Bitmap(50, 50);
// Создание поверхности для рисования графики
Graphics graphucsSurface = Graphics.FromImage(pictureBitmap);
// Цвет кисти рисования прогресса
Color brushColor = Color.Lime; // По умолчанию - зеленый
// Если осталось < 50% от времени тестирования - темно-зеленый
if (seconds_remaining * 100 / (_test.TimeLimit * 60) < 50) brushColor =
Color.Green;
// Если осталось < 30% от времени тестирования - желтый
if (seconds_remaining * 100 / (_test.TimeLimit * 60) < 30) brushColor =
Color.Orange;
// Если осталось < 10% от времени тестирования - красный
if (seconds_remaining * 100 / (_test.TimeLimit * 60) < 10) brushColor =
Color.Red;
// Рисование сектора, соответствующего текущему прогрессу
graphucsSurface.FillPie(new SolidBrush(brushColor), 2, 2, 46, 46, 0,
seconds_remaining * 6 / _test.TimeLimit);
// Отображение на PictureBox
picTimerProgress.Image = pictureBitmap;
}
}
/// <summary>
/// Прогресс теста
/// </summary>
private int _TestProgress { set { tstrlblCompleted.Text = $"{ value} %"; } }
#endregion
/// -----------------------------------------------------
/// <summary>
/// Словарь ответов на вопросы
/// </summary>
Dictionary<int, string> Answers;
/// <summary>
/// Ответить на вопрос
/// </summary>
/// <param name="sender">Объект, вызвавший событие</param>
/// <param name="e">Параметры события</param>
private void tstrbtnNextQuestion_Click(object sender, EventArgs e)
{
// Строка ответов
string answer_string = "";
// Получение строки ответов
foreach (DataGridViewRow dgvr in dgvAnswers.Rows)
{
// Выбранный ответ
if (Convert.ToBoolean(dgvr.Cells[2].Value))
answer_string += Convert.ToString(dgvr.Cells[1].Value) + "|";
}
// Сохранение ответа на вопрос
Answers.Add(_CurrentQuestion.Number, answer_string);