Как убрать обводку у кнопки windows forms

Доброго времени суток господа, у меня есть игра на которой появляются кнопки и пользователь должен успеть их нажать и за это он будет получать очки, кнопки именно появляются и исчезают, на каждой к...

Доброго времени суток господа, у меня есть игра на которой появляются кнопки и пользователь должен успеть их нажать и за это он будет получать очки, кнопки именно появляются и исчезают, на каждой кнопке имеется своё изображение и нужно чтобы вокруг этого изображения не было рамки.Как оно всё выглядит исходно

Во время работы приложения

задан 21 июн 2016 в 9:58

O_o's user avatar

1

Лучше бы вместо картинки код прилепили для наглядности.

Если нужно убрать рамку у кнопки, то так:

button.FlatAppearance.BorderSize = 0;
button.FlatStyle = FlatStyle.Flat;

ответ дан 21 июн 2016 в 11:49

slippyk's user avatar

slippykslippyk

6,0363 золотых знака18 серебряных знаков37 бронзовых знаков

1

26 / 2 / 0

Регистрация: 26.12.2011

Сообщений: 122

1

24.02.2012, 17:46. Показов 45928. Ответов 7


Всем привет. При клике по баттон появляется черная рамка вокруг этой кнопки. Хотя бордер стоит 0.
Как можно избавится от неё?

Изображения

 

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Почетный модератор

21366 / 9100 / 1082

Регистрация: 11.04.2010

Сообщений: 11,014

24.02.2012, 17:52

2

У кнопки
FlatAppearance.BorderSize = 0
FlatStyle = FlatStyle.Flat



4



26 / 2 / 0

Регистрация: 26.12.2011

Сообщений: 122

24.02.2012, 17:59

 [ТС]

3

Цитата
Сообщение от Памирыч
Посмотреть сообщение

У кнопки
FlatAppearance.BorderSize = 0
FlatStyle = FlatStyle.Flat

Да. Все именно так.



0



Vovencia

13.12.2013, 21:41

4

Цитата
Сообщение от Mr.Evgen
Посмотреть сообщение

Да. Все именно так.

Поздновато, но всё же
Эта рамка фокуса, её можно убрать, добавив на форму кнопку(name=btnFocus) размером 0*0 px(чтобы не увидеть её) — visible = true и enable = true,
а в ту кнопку, у которой рамка появляется, в обработчик клика добавить btnFocus.Focus() и фокус уйдет ей(кнопке для фокуса), а рамка исчезнет

3 / 3 / 4

Регистрация: 13.05.2016

Сообщений: 38

24.05.2016, 15:57

5

Vovencia, спасибо



0



25 / 22 / 5

Регистрация: 01.04.2013

Сообщений: 218

01.06.2017, 10:47

6

Памирыч, появляется ошибка «Ошибка CS1061 ‘Button» не содержит определения для «FlatStyle» и не удалось найти метод расширения «FlatStyle», принимающий тип «Button» в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку).«.
При указании «using System.Windows.Forms;» возникает ошибка «Тип или имя пространства имен «Forms» не существует в пространстве имен «System.Windows»«.
Подскажите, что делать?



0



Эксперт .NET

5858 / 4735 / 2940

Регистрация: 20.04.2015

Сообщений: 8,361

01.06.2017, 11:13

7

Цитата
Сообщение от lino217
Посмотреть сообщение

‘Button» не содержит определения для «FlatStyle»

Содержит.

Цитата
Сообщение от lino217
Посмотреть сообщение

«Тип или имя пространства имен «Forms» не существует в пространстве имен «System.Windows»».
Подскажите, что делать?

Эта тема в разделе Windows Forms. У вас видимо проект WPF. Не все советы для WF одинаково полезны для WPF.



0



25 / 22 / 5

Регистрация: 01.04.2013

Сообщений: 218

01.06.2017, 11:32

8

Даценд, именно. Значит, я не в том разделе. Мои сообщения можно почистить здесь.



0



  • Remove From My Forums
  • Вопрос

  • Исходные данные:

    Форма. На форме Кнопка с надписью, например,  Text.

    Событие:

    При клике мышкой на кнопке, вокруг текста кнопки возникает рамка.

    Вопрос:

    Как избавиться от Рамки (или задать её цвет). :)


    SHerkh

    • Изменено

      14 октября 2018 г. 11:47

Ответы

  • Добрый день.

    Создайте свой класс кнопки, потомок от того класса кнопки который вы сейчас используете. Если это стандартная кнопка, то вот так:

    public class MyButton : Button
    {
        public MyButton() : base()
        {
            SetStyle(ControlStyles.Selectable, false);
        }
    }

    Эта кнопка не будет получать фокус, вы, насколько я понимаю, говорите именно про него.

    • Изменено
      Алексей ЛосевEditor
      16 октября 2018 г. 11:09
    • Предложено в качестве ответа
      Maksim MarinovMicrosoft contingent staff, Moderator
      16 октября 2018 г. 12:05
    • Помечено в качестве ответа
      SHerkh
      16 октября 2018 г. 14:07

I have a button on my form that has flat style applied and uses a background image, I have removed all borders from the button, but when I tab onto the button from another control a black border appears around the button.

This can be seen in the image below. On the left is the button with black border on the right is a different button but shows how the cancel button should look.

Buttons

asked Apr 1, 2012 at 17:19

shane12195's user avatar

4

I do not get this border, if I set the BoderSize to 0 in the FlatAppearance section.


Further investigation shows that this border appears only when the button is the default button. You can create your own button, which does never show this border like this

public class NoNotifyButton: System.Windows.Forms.Button
{
    public override void NotifyDefault(bool value)
    {
    }
}

Note: NotifyDefault remains intentionally empty.

answered Apr 1, 2012 at 17:27

Olivier Jacot-Descombes's user avatar

2

You have to make a new button class using IButtonControl and change NotifyDefault to false:

base.NotifyDefault(false);

answered Apr 1, 2012 at 17:24

Saeid Yazdani's user avatar

Saeid YazdaniSaeid Yazdani

13.3k53 gold badges177 silver badges284 bronze badges

You don’t have to create a derived class.
You can set the ForeColor to be the same as parent control BackColor.
As follows :

btn1.ForeColor = btn1.Parent.BackColor;

answered Dec 21, 2015 at 13:03

Amit Lipman's user avatar

Amit LipmanAmit Lipman

6276 silver badges16 bronze badges

You can do it setting the button property «ForeColor» to transparent

answered Jun 10, 2015 at 7:52

nohack12's user avatar

I managed to get around this by setting the button TabStop property to False and then using this code on the button click event

private void sendBackTab()
        {
            System.Windows.Forms.SendKeys.SendWait("+{TAB}");
        }

answered Feb 2, 2016 at 4:30

cbyte's user avatar

cbytecbyte

6717 silver badges12 bronze badges

I have a button on my form that has flat style applied and uses a background image, I have removed all borders from the button, but when I tab onto the button from another control a black border appears around the button.

This can be seen in the image below. On the left is the button with black border on the right is a different button but shows how the cancel button should look.

Buttons

asked Apr 1, 2012 at 17:19

shane12195's user avatar

4

I do not get this border, if I set the BoderSize to 0 in the FlatAppearance section.


Further investigation shows that this border appears only when the button is the default button. You can create your own button, which does never show this border like this

public class NoNotifyButton: System.Windows.Forms.Button
{
    public override void NotifyDefault(bool value)
    {
    }
}

Note: NotifyDefault remains intentionally empty.

answered Apr 1, 2012 at 17:27

Olivier Jacot-Descombes's user avatar

2

You have to make a new button class using IButtonControl and change NotifyDefault to false:

base.NotifyDefault(false);

answered Apr 1, 2012 at 17:24

Saeid Yazdani's user avatar

Saeid YazdaniSaeid Yazdani

13.3k53 gold badges177 silver badges284 bronze badges

You don’t have to create a derived class.
You can set the ForeColor to be the same as parent control BackColor.
As follows :

btn1.ForeColor = btn1.Parent.BackColor;

answered Dec 21, 2015 at 13:03

Amit Lipman's user avatar

Amit LipmanAmit Lipman

6276 silver badges16 bronze badges

You can do it setting the button property «ForeColor» to transparent

answered Jun 10, 2015 at 7:52

nohack12's user avatar

I managed to get around this by setting the button TabStop property to False and then using this code on the button click event

private void sendBackTab()
        {
            System.Windows.Forms.SendKeys.SendWait("+{TAB}");
        }

answered Feb 2, 2016 at 4:30

cbyte's user avatar

cbytecbyte

6717 silver badges12 bronze badges

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

Это можно увидеть на изображении ниже. Слева находится кнопка с черной рамкой, справа — другая кнопка, но показывает, как должна выглядеть кнопка отмены.

Кнопки

5 ответы

Я не получаю эту границу, если я устанавливаю BoderSize в 0 в FlatAppearance .


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

public class NoNotifyButton: System.Windows.Forms.Button
{
    public override void NotifyDefault(bool value)
    {
    }
}

Примечание: NotifyDefault остается намеренно пустым.

ответ дан 01 апр.

Вам нужно создать новый класс кнопки, используя IButtonControl и изменение NotifyDefault на ложь:

base.NotifyDefault(false);

ответ дан 01 апр.

Вам не нужно создавать производный класс. Вы можете установить ForeColor таким же, как родительский элемент управления BackColor. Следующее :

btn1.ForeColor = btn1.Parent.BackColor;

ответ дан 21 дек ’15, 13:12

Вы можете сделать это, установив свойство кнопки «ForeColor» на прозрачное.

Создан 10 июн.

Мне удалось обойти это, установив для свойства кнопки TabStop значение False, а затем используя этот код для события нажатия кнопки.

private void sendBackTab()
        {
            System.Windows.Forms.SendKeys.SendWait("+{TAB}");
        }

Создан 02 фев.

Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками

c#
winforms
button
tabs
border

or задайте свой вопрос.

Мы создали одну настраиваемую кнопку с FlatStyle = Standard. Но теперь, если я попытаюсь изменить цвет фона кнопки, вокруг кнопки появится белая рамка.

Но если кнопка FlatStyle = Flat, белая рамка не отображается.

Может кто-нибудь дать предложение убрать белую рамку.

Пожалуйста, найдите изображение ниже. Это две кнопки с BackColor = Blue, но вокруг этих двух кнопок есть белая рамка.

enter image description here

2 ответа

Лучший ответ

Белая рамка на самом деле не белая, это светло-серый цвет. И это часть темы рисования FlatStyle.Standard. Граница вокруг кнопки — это то, что делает ее трехмерной, как кнопку.

Если вы этого не хотите, значит, вы не хотите FlatStyle.Standard. И вам, вероятно, в любом случае не нужен этот стиль, поскольку он не соответствует системной теме. FlatStyle.System делает, и это почти всегда лучший выбор. Конечно, вы теряете встроенную поддержку изображений, а это означает, что вам придется писать код для рисования изображения самостоятельно.

Как вариант, вы можете просто установить FlatStyle.Flat. Как вы видели, это удаляет границу и превращает кнопку в плоскую. Единственная проблема заключается в том, что он дает вам непригодный для использования интерфейс, как в iOS 7 — никто больше не знает, какие виджеты доступны для кликов. Весь смысл кнопки управления состоит в том, что она предлагает визуальную доступность. Даже кнопка бедняги (элемент управления гиперссылкой) имеет подчеркивание, благодаря которому она выглядит интерактивной. Плоская пуговица ничем не отличается от орнаментального изображения.

Конечно, вы можете установить FlatStyle.Flat и нарисовать любую границу вручную. Это дает вам полный контроль. Но это также означает, что вы должны обладать дизайнерскими навыками, чтобы сделать что-то, что хорошо выглядит. Если вы похожи на большинство программистов, это маловероятно. Поскольку вам все равно придется рисовать по индивидуальному заказу, вы можете также установить FlatStyle.System и нарисовать изображение. Всегда лучше позволить операционной системе делать всю тяжелую работу за вас. Это не только приведет к более красивым результатам, но и даст вам то, с чем пользователь уже знаком и привык использовать. В качестве специального бонуса виджеты вашего приложения автоматически обновляются до шикарных новых тем, используемых в новых версиях операционной системы.

Вот пример кода, который поможет вам начать добавлять изображения к кнопкам со стилем FlatStyle.System: Изображения на кнопках в стиле XP. Он был написан еще тогда, о Windows XP, но, как я уже упоминал, весь смысл этого стиля в том, что он позволяет системе рисовать кнопку, а это означает, что при запуске кода вы получите красивые кнопки Aero или что-то еще. Windows 9 использует файлы.


4

Cody Gray
7 Авг 2014 в 12:14

Вы не сможете этого сделать, если не установите для FlatStyle значение Flat и FlatAppearance.BorderSize = 0. Другой вариант — обрабатывать нестандартную раскраску.

public class MyButton : Button
{
    protected override void OnPaint(PaintEventArgs pevent)
    {
        base.OnPaint(pevent);
        using (Pen p = new Pen(BackColor, 5))
        {
            p.Alignment = System.Drawing.Drawing2D.PenAlignment.Inset;
            pevent.Graphics.DrawRectangle(p, ClientRectangle);
        }
    }
}


2

Sriram Sakthivel
7 Авг 2014 в 12:09

Понравилась статья? Поделить с друзьями:
  • Как убрать обводку значков на рабочем столе windows 10
  • Как убрать нумерацию страниц в wordpad windows 10
  • Как убрать ночной режим на компьютере windows 10
  • Как убрать новостную панель с панели задач windows 10
  • Как убрать новостную ленту в windows 10 на панели задач