Программирование >>  Автоматически обновляемые приложения 

1 ... 67 68 69 [ 70 ] 71 72 73 ... 170


int min =0; Minimum value for progress range

int max =100; Maximum value for progress range

int val =0; Current progress

Color BarColor = Color.Blue; Color of progress meter

protected override void OnResize(EventArgs e) {

Invalidate the control to get a repaint, this.Invalidate();

protected override void OnPaint(PaintEventArgs e) {

Graphics g = e.Graphics;

SolidBrush brush = new SolidBrush(BarColor);

float percent = (float) (val - min) / (float) (max - min) .

Rectangle rect = this.ClientRectangle;

Вычислим район, в котором рисуем индикатор, rect.Width = (int)((float)rect.Width * percent);

Нарисуем индикатор.

g.FillRectangle(brush, rect);

Нарисуем ЗО-рамку вокруг индикатора. Draw3DBorder(g) ;

Освободим ресурсы, brush.Dispose() ; g.Dispose ();

public int Minimum {

get {

return min;

Листинг 6,7. УГотановка неое5с>димь1Х свойств у, со§<р(нрго jHHAHKaTOpa. с :



set {

Запретим отрицательные значения, if (value < 0)

min = 0;

Убедимся, что минимум никогда не устанавливается большим, чем максимум, if (value > max)

min = value; min = value;

Проверим, что значение все еще внутри допустимого диапозона. if (val < min)

val = min;

Запросим перерисовку элемента, this.Invalidate();

public int Maximum {

get {

return max;

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

if (value < min)

min = value;



max = value;

Убедимся, что значение остается в допустимом интервале, if (val > max)

val = max;

Запросим перерисовку элемента, this.Invalidate();

public int Value

get {

return val;

int oldValue = val;

Убедимся, что значение в допустимом интервале, if (value < min)

val = min;

else if (value > max)

val = max;

val = value;

Запросим перерисовку только измененной области, float percent;

Rectangle newValueRect = this.ClientRectangle; Rectangle oldValueRect = this.ClientRectangle;



1 ... 67 68 69 [ 70 ] 71 72 73 ... 170

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика