1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
Скрыть объявление

Привет посетитель! У нас на форуме тебе откроются дополнительные разделы, которые скрыты от гостей! А так же ты найдёшь много полезной информации.

[C# WinForm][Вопрос] BorderSize

Тема в разделе "C++ / C# / .NET", создана пользователем DaVilka, 30 апр 2018.

  1. DaVilka

    DaVilka Пляшущий с бубном Местный

    Регистрация:
    25 май 2017
    Сообщения:
    164
    Симпатии:
    74
    Баллы:
    157
    Выставил по умолчанию BorderSize = 1, но при нажатии на кнопку он меняется на 2, хотя отладчик говорит что он так и остался 1, пытался явно присвоить 1 в обработчике события PageUp/Down, те же яйца. Почему так?
     
  2. Zubastic

    Zubastic Знающий Проверенный

    Регистрация:
    24 апр 2016
    Сообщения:
    770
    Симпатии:
    359
    Баллы:
    380
    Бордер чего? Формы?
     
  3. DaVilka

    DaVilka Пляшущий с бубном Местный

    Регистрация:
    25 май 2017
    Сообщения:
    164
    Симпатии:
    74
    Баллы:
    157
    Кнопки
     
  4. DaVilka

    DaVilka Пляшущий с бубном Местный

    Регистрация:
    25 май 2017
    Сообщения:
    164
    Симпатии:
    74
    Баллы:
    157
    разве у формы есть бордерсайз?
     
  5. Daan Raven

    Daan Raven Свой человек Проверенный

    Регистрация:
    7 апр 2015
    Сообщения:
    689
    Симпатии:
    316
    Баллы:
    469
    Это все стили винды. Попробуй полностью отключить стили и посмотри, что будет. На крайняк вручную кнопку рисуй.
    А вообще, WinForms устарел, профитней юзать WPF.
     
  6. DaVilka

    DaVilka Пляшущий с бубном Местный

    Регистрация:
    25 май 2017
    Сообщения:
    164
    Симпатии:
    74
    Баллы:
    157
    Если отключить то все норм, рисовать и так и так придется, просто интересно в чем дело, заметил - если убрать фокус из кнопки то бордерсайз стает 1
     
  7. Daan Raven

    Daan Raven Свой человек Проверенный

    Регистрация:
    7 апр 2015
    Сообщения:
    689
    Симпатии:
    316
    Баллы:
    469
    А там вроде при фокусе не бордер, а inner glow эффект.
     
  8. DaVilka

    DaVilka Пляшущий с бубном Местный

    Регистрация:
    25 май 2017
    Сообщения:
    164
    Симпатии:
    74
    Баллы:
    157
    а как его убрать?
     
  9. Daan Raven

    Daan Raven Свой человек Проверенный

    Регистрация:
    7 апр 2015
    Сообщения:
    689
    Симпатии:
    316
    Баллы:
    469
    Вот тут я вряд ли помощник. Хотя 90% нужно идти в документацию Win32 API. Поройся в сторону отрисовки той же кнопки, учитывая стили Windows (так как по дефолту оно не юзает стили).

    UPD: Не уверен, поможет ли, так как быстро пробежался глазами, но вот.
     
    Последнее редактирование: 1 май 2018
  10. DaVilka

    DaVilka Пляшущий с бубном Местный

    Регистрация:
    25 май 2017
    Сообщения:
    164
    Симпатии:
    74
    Баллы:
    157
    [C# WinForm][Вопрос] BorderSize, DaVilka,1, 1, 4 май 2018, 19:37, Форум администраторов игровых серверов, 86038, 6859, png, upload_2018-5-4_19-31-42.png

    ты не знаешь как этот бордюр убрать? Появляется при потере фокуса после клика, но не всегда, магия какая то
     
  11. DaVilka

    DaVilka Пляшущий с бубном Местный

    Регистрация:
    25 май 2017
    Сообщения:
    164
    Симпатии:
    74
    Баллы:
    157
    А еще, если нажать кнопку, и форма потеряет фокус, то во круг кнопки появляется обводка даже если BorderSize = 0
    [C# WinForm][Вопрос] BorderSize, DaVilka,2, 1, 4 май 2018, 19:39, Форум администраторов игровых серверов, 86039, 6859, png, upload_2018-5-4_19-34-48.png
     
  12. Daan Raven

    Daan Raven Свой человек Проверенный

    Регистрация:
    7 апр 2015
    Сообщения:
    689
    Симпатии:
    316
    Баллы:
    469
    Как вариант, создать класс-наследник от Button и в конструкторе или в OnPaint`е вызвать:
    SetStyle(ControlStyles.Selectable, false);
    В этом случае кнопке нельзя будет присвоить фокус, т.е. табом теперь ее не выбирает.

    UPD: Если же фокус нужен, то есть еще вариант:
    Создаем класс-наследник от Button и переопределяем свойство ShowFocusCues на возвращение false:
    protected override bool ShowFocusCues => false;
    А в неактивном окне применяется цвет рамки, поэтому задаем цвет рамки прозрачный. Через панель свойств это нельзя сделать почему-то, поэтому идем в код и задаем цвет рамки вручную:
    this.button1.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(0, 255, 255, 255);
    В этом случае ShowFocusCues запретит показывать рамку вокруг текста при фокусе, а прозрачный цвет поможет визуально избавиться от рамки при потере фокуса окна (хотя сама рамка остается).
    Можно еще попробовать поколдовать с GotFocus кнопки и Deactivate окна.
     
    Последнее редактирование: 4 май 2018
Похожие темы
  1. Psycho
    Ответов:
    5
    Просмотров:
    286
  2. Psycho

    Удалено Вопрос по гта5

    Psycho, 11 май 2017, в разделе: Корзина
    Ответов:
    0
    Просмотров:
    188
  3. GoGLiKK
    Ответов:
    10
    Просмотров:
    255
  4. PrizraKZN
    Ответов:
    12
    Просмотров:
    246
  5. Tarasiuk
    Ответов:
    36
    Просмотров:
    529
Загрузка...