2009-09-14 2 views
1

Есть определенные преимущества в том, что прямоугольник выделения выделяет текущий выбранный элемент, который также имеет фокус. Однако элемент с заполнением может привести к тому, что прямоугольник будет нарисован на абсолютно нежелательном положении и, следовательно, будет препятствовать и не поможет. Поэтому без лишнего шума мой вопрос: есть ли способ скрыть этот прямоугольник или изменить его положение?Есть ли способ переписать пунктирный прямоугольник выделения/выделения для LinkLabel?

  • Переключение на ownerdrawing весь элемент должен быть только последним средством
  • Установка свойства «TabStop» на ложь не работает
+0

Я не пробовал это в winforms, но аналогичная проблема существует в IE7. Возможно ли вам отрегулировать поля, а не отступы? – overslacked

+0

@overslacked Я попытался установить поля, но, к сожалению, он не имеет никакого эффекта. Другое дело в том, что, насколько мне известно, поля, как правило, определяют внешние границы элемента, но мне нужно установить «внутренний» дополнительный дуэт на какой-то чертеж OnPaintBackground. Однако спасибо за эту идею. – merkuro

ответ

0

В объектах OnFocus случае, установите фокус на следующий элемент в конце табуляции?

Это позволит сохранить контроль над фокусом, что предотвратит показ «системного карат».

+0

Неплохо. Я просто попытался переопределить событие OnGotFocus и дал фокусу родителя. Это сработало. При небольшой настройке должно быть возможно получить «следующий» ребенок или первый ребенок в фокусе, если моя ссылка является последним элементом. Во всяком случае, было бы здорово, если бы все парни-клавиаторы позволили этому элементу получить фокус и просто нарисовать прямоугольник в правильном положении. Интересно то, что выполнение ownerdrawing для linklable очень тривиально и может быть допустимой альтернативой или просто встраивать его в другой элемент управления и избегать заполнения, но, возможно, мы найдем что-то более элегантное. – merkuro