Формы Windows Textbox-Fade-In/Fade-Out Цвет фона [закрыто
Вопрос
Я хочу подтвердить ввод пользователя и хочу сообщить ему/ей об ошибке проверки с изменением цвета фона стандарта 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 это будет полный красный.