Доброго времени суток господа, у меня есть игра на которой появляются кнопки и пользователь должен успеть их нажать и за это он будет получать очки, кнопки именно появляются и исчезают, на каждой кнопке имеется своё изображение и нужно чтобы вокруг этого изображения не было рамки.
задан 21 июн 2016 в 9:58
1
Лучше бы вместо картинки код прилепили для наглядности.
Если нужно убрать рамку у кнопки, то так:
button.FlatAppearance.BorderSize = 0;
button.FlatStyle = FlatStyle.Flat;
ответ дан 21 июн 2016 в 11:49
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 |
У кнопки
4 |
26 / 2 / 0 Регистрация: 26.12.2011 Сообщений: 122 |
|
24.02.2012, 17:59 [ТС] |
3 |
У кнопки Да. Все именно так.
0 |
Vovencia |
|
13.12.2013, 21:41 |
4 |
Да. Все именно так. Поздновато, но всё же |
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 или ссылка на сборку).«.
0 |
5858 / 4735 / 2940 Регистрация: 20.04.2015 Сообщений: 8,361 |
|
01.06.2017, 11:13 |
7 |
‘Button» не содержит определения для «FlatStyle» Содержит.
«Тип или имя пространства имен «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.
asked Apr 1, 2012 at 17:19
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
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 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 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
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
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.
asked Apr 1, 2012 at 17:19
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
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 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 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
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
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, но вокруг этих двух кнопок есть белая рамка.
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