C#, BindingNavigator, Гадкая линия на правом конце

Как мне избавиться от этой уродливой линии?

Нарисуйте привязку по умолчанию на пустой Форме, и вы увидите проблему. RenderMode - это ManagerRenderMode. Я хочу этот режим рендера, чтобы навести курсор на цвета. Тем не менее, если я переключаюсь на System в режиме рендеринга, уродливая линия исчезает, но при наведении мыши на цвет / эффект становится уродливой.

Я уже некоторое время ищу решение, но ничего. Может быть, кто-то здесь видел эту проблему раньше?

1 ответ

Это не BindingNavigator конкретная проблема, но ToolStrip который BindingNavigator наследует.

Это вызвано DrawToolStripBorder метод, когда ToolStripProfessionalRenderer учебный класс RoundedEdges свойство true (по умолчанию).

Чтобы отключить его, я могу предложить следующий вспомогательный метод:

public static class WindowsFormsExtensions
{
    public static void DisableRoundedEdges(this ToolStripRenderer renderer)
    {
        var professionalRenderer = renderer as ToolStripProfessionalRenderer;
        if (professionalRenderer != null)
            professionalRenderer.RoundedEdges = false;
    }
}

Теперь вы можете отключить его для определенного элемента управления (он недоступен во время разработки, поэтому он должен быть во время выполнения внутри конструктора формы / элемента управления или события load):

this.bindingNavigator1.Renderer.DisableRoundedEdges();

или чтобы отключить его глобально, добавьте следующее в Main метод перед вызовом Application.Run:

ToolStripManager.Renderer.DisableRoundedEdges();
Другие вопросы по тегам