Обивка сверху и снизу в ErrorProvider - PullRequest
1 голос
/ 24 августа 2011


В элементе управления ErrorProvider мы можем использовать SetIconPadding (); чтобы задать количество пикселей для добавления между значком и элементом управления.

Таким образом, мы можем перемещать значок по горизонтали.
Как сделать то же самое, но по вертикали?

Я не знаю, как расширить или переопределить расположение значков.

PS. SetIconAlignment () в некоторых ситуациях недостаточно. Я просто должен установить пользовательскую локализацию иконки.

1 Ответ

6 голосов
/ 24 августа 2011

К сожалению, это не простой способ сделать это.

Используя функцию SetIconPadding(), вы можете определить расстояние между значком и элементом управления только по горизонтали, но также допускаются отрицательные значения.

При вызове SetIconAlignment() вы можете поместить его только где-то слева или справа от элемента управления, но не выше или ниже его.

Хак, чтобы заставить это работать, состоял бы в том, чтобы поместить панель вокруг элемента управления, для которого нужен errorProvider, и сделать его выше и / или ниже. Теперь вы можете установить провайдер для этого элемента управления контейнера вместо прямого элемента управления, и, применяя отрицательные значения для отступа, вы можете перемещать мигающий значок над или под нужным вам элементом управления.

Это что-то вроде хакерства, но я думаю, что нет другого способа сделать это.

    +--Panel----------------------+
    |               !             |
    |     +------------------+    |
    |     | ControlWithError |    |
    |     +------------------+    |
    |                             |
    +-----------------------------+

Как показано выше, установите ErrorProvider не на элементе управления. Установите его на панель и установите IconAlignment на TopLeft и IconPadding на какое-то отрицательное значение (например, -50), и ваш значок мигает над вашим контролем.

...