Вопрос

Я хочу подтвердить ввод пользователя и хочу сообщить ему/ей об ошибке проверки с изменением цвета фона стандарта Windows Forms Управление текстовым полем.

Но вместо того, чтобы сразу же менять цвет, я хотел бы использовать эффект замирания цвета.

Есть ли простой способ сделать это?

РЕДАКТИРОВАТЬ: У меня также есть доступ к инфрагистическим элементам управления, я не уверен, что это имеет какое -либо значение.

Это было полезно?

Решение

Предполагая, что это C#/. Net, создание вашего собственного пользовательского управления является подходящим решением этой проблемы. Вместо того, чтобы наследовать от UserControl, ваш контроль должен вместо этого наследовать от TextBox - Это сделает ваш контроль выглядеть и действовать как обычный TextBox, и вы можете добавить код для обработки эффекта замирания:

public partial class MyCustomTextbox : Textbox
{

}

Чтобы сделать выцветание, вам придется создать какой -то таймер, чтобы постепенно изменить BackColor с такой функцией, как это:

function FadeBackground(float progress)
{
    Color color = Color.FromArgb(255, (int)((1 - progress) * 255),
        (int)((1 - progress) * 255));
    base.BackColor = color;
}

Когда параметр progress = 0, это даст белый фон, и когда progress = 1 это будет полный красный.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top