У меня есть некоторый проверочный код, который должен отображать макс / мин элемента управления при вводе неверного значения.
В моем конструкторе я делаю это:
m_wndToolTip = gcnew ToolTip(this->components);
m_wndToolTip->AutoPopDelay = 5000;
m_wndToolTip->InitialDelay = 10;
m_wndToolTip->ReshowDelay = 250;
m_wndToolTip->ShowAlways = true;// Force the ToolTip text to be displayed whether or not the form is active.
Это мой код отражения проверки:
void MyGUI::IndicateValidationResult(Windows::Forms::Control^ control, bool isValid, String^ invalidReason)
{
// If the validation failed, make the background red. If not, turn it white.
if( isValid )
{
control->BackColor = Drawing::Color::White;
m_wndToolTip->Hide(control);
}
else
{
control->BackColor = Drawing::Color::LightCoral;
m_wndToolTip->Show(invalidReason, control);
}
}
... который вызывается из различных ValueChanged
методов в моих текстовых полях. Я пытался использовать show, а также комбинацию SetToolTip
и active = true
, и, похоже, ничего не работает.
Я видел еще один вопрос, спрашивающий о всплывающих подсказках , и попытался установить соседнюю метку в вызове, чтобы показать, но это тоже не исправило. Подсказка - это переменная-член в моей производной форме System::Windows::Forms::Form
, которая не позволяет ей выйти из области видимости.
Я что-то упускаю из виду?