Доброго времени суток господа, у меня есть игра на которой появляются кнопки и пользователь должен успеть их нажать и за это он будет получать очки, кнопки именно появляются и исчезают, на каждой кнопке имеется своё изображение и нужно чтобы вокруг этого изображения не было рамки.
задан 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. Показов 45930. Ответов 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 2 Buttons in my form. Both have background image and Flat style is «Flat».
-
On clicking TAB key, when the focus is on button, I see solid color rectangle inner, instead of solid border I want to have dotted border in the button.
-
When the button is clicked, some activity is going on and the button is disabled. While disabled, the button text color changes to grey. I don’t want it to change the text color. I believe this is windows standard behavior, but how do I not change the text color when the button is selected?
I can’t find any properties to set these points. What should I do to achieve the goal. Any help is highly appreciated.
I also created a custom button, but can’t get rid of the above issues.
My custom button’s paint method :
public partial class MyButton : Button {
protected override void OnPaint(PaintEventArgs pevent)
{
base.OnPaint(pevent);
// Set custom fore color
base.ForeColor = Color.FromArgb(0, 255, 254, 255);
// set the same forecolor even if the button is disabled
if (base.Enabled == false)
{
base.ForeColor = Color.FromArgb(0, 255, 254, 255);
}
} //OnPaint method ends
} // class ends
UPDATED Soluiton for (1) & (2)
ADDED the following in onpaint() :
private void init()
{
base.ForeColor = Color.FromArgb(0, 255, 254, 255);
base.FlatAppearance.BorderColor = Color.FromArgb(0, 255, 255, 254); // Transparent border
}
protected override void OnPaint(PaintEventArgs pevent)
{
base.OnPaint(pevent);
if (base.ContainsFocus)
{
// Draw inner dotted rectangle when button is on focus
Pen pen = new Pen(Color.Gray, 3);
Point p = base.Location;
pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot;
Rectangle rectangle = new Rectangle(4, 4, Size.Width - 8, Size.Height - 8);
ControlPaint.DrawFocusRectangle(pevent.Graphics, rectangle);
}
// Draw the string to screen
SizeF sf = pevent.Graphics.MeasureString(displayText, this.Font, this.Width);
Point ThePoint = new Point();
ThePoint.X = (int)((this.Width / 2) - (sf.Width / 2));
ThePoint.Y = (int)((this.Height / 2) - (sf.Height / 2));
//pevent.Graphics.DrawString(displayText, Font, new SolidBrush(this.ForeColor), ThePoint);
//pevent.Graphics.DrawString(displayText, Font, new SolidBrush(Color.FromArgb(0, 255, 254, 255)), ThePoint);
pevent.Graphics.DrawString(displayText, Font, new SolidBrush(Color.Black), ThePoint);
//this.Text = "";
}//OnPaint ends
// Avoids the inner solid rectangle shown on focus
protected override bool ShowFocusCues
{
get
{
return false;
}
}
This successfully draws a dotted line in my button indicating for focus. To get rid of the default solid line I overridded ShowFocusCues().
This has helped me solve 1 completely. But with point 2, not getting 100% results. I created a property «displayText» in my MyButton class. In OnPaint(), if I give ForeColor, Color.FromARGB to SolidBrush, it doesn’t show up any text. But if I pass Color.Black, then it accepts it and shows the text in Black color. Why is it not accepting the ForeColor, or custom color and only accepting default Colors’? Where am I still going wrong for this simple task. I tried the same by implementing button_paint in the form, but I see same results.
Any idea where am I still going wrong ???
I have 2 Buttons in my form. Both have background image and Flat style is «Flat».
-
On clicking TAB key, when the focus is on button, I see solid color rectangle inner, instead of solid border I want to have dotted border in the button.
-
When the button is clicked, some activity is going on and the button is disabled. While disabled, the button text color changes to grey. I don’t want it to change the text color. I believe this is windows standard behavior, but how do I not change the text color when the button is selected?
I can’t find any properties to set these points. What should I do to achieve the goal. Any help is highly appreciated.
I also created a custom button, but can’t get rid of the above issues.
My custom button’s paint method :
public partial class MyButton : Button {
protected override void OnPaint(PaintEventArgs pevent)
{
base.OnPaint(pevent);
// Set custom fore color
base.ForeColor = Color.FromArgb(0, 255, 254, 255);
// set the same forecolor even if the button is disabled
if (base.Enabled == false)
{
base.ForeColor = Color.FromArgb(0, 255, 254, 255);
}
} //OnPaint method ends
} // class ends
UPDATED Soluiton for (1) & (2)
ADDED the following in onpaint() :
private void init()
{
base.ForeColor = Color.FromArgb(0, 255, 254, 255);
base.FlatAppearance.BorderColor = Color.FromArgb(0, 255, 255, 254); // Transparent border
}
protected override void OnPaint(PaintEventArgs pevent)
{
base.OnPaint(pevent);
if (base.ContainsFocus)
{
// Draw inner dotted rectangle when button is on focus
Pen pen = new Pen(Color.Gray, 3);
Point p = base.Location;
pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot;
Rectangle rectangle = new Rectangle(4, 4, Size.Width - 8, Size.Height - 8);
ControlPaint.DrawFocusRectangle(pevent.Graphics, rectangle);
}
// Draw the string to screen
SizeF sf = pevent.Graphics.MeasureString(displayText, this.Font, this.Width);
Point ThePoint = new Point();
ThePoint.X = (int)((this.Width / 2) - (sf.Width / 2));
ThePoint.Y = (int)((this.Height / 2) - (sf.Height / 2));
//pevent.Graphics.DrawString(displayText, Font, new SolidBrush(this.ForeColor), ThePoint);
//pevent.Graphics.DrawString(displayText, Font, new SolidBrush(Color.FromArgb(0, 255, 254, 255)), ThePoint);
pevent.Graphics.DrawString(displayText, Font, new SolidBrush(Color.Black), ThePoint);
//this.Text = "";
}//OnPaint ends
// Avoids the inner solid rectangle shown on focus
protected override bool ShowFocusCues
{
get
{
return false;
}
}
This successfully draws a dotted line in my button indicating for focus. To get rid of the default solid line I overridded ShowFocusCues().
This has helped me solve 1 completely. But with point 2, not getting 100% results. I created a property «displayText» in my MyButton class. In OnPaint(), if I give ForeColor, Color.FromARGB to SolidBrush, it doesn’t show up any text. But if I pass Color.Black, then it accepts it and shows the text in Black color. Why is it not accepting the ForeColor, or custom color and only accepting default Colors’? Where am I still going wrong for this simple task. I tried the same by implementing button_paint in the form, but I see same results.
Any idea where am I still going wrong ???
БЛОГ НА HUSL
- Деловая переписка на английском языке: фразы и советы
- Принцип цикады и почему он важен для веб-дизайнеров
- В популярных антивирусах для ПК обнаружили лазейки в защите
Автор вопроса: O_o
Доброго времени суток господа, у меня есть игра на которой появляются кнопки и пользователь должен успеть их нажать и за это он будет получать очки, кнопки именно появляются и исчезают, на каждой кнопке имеется своё изображение и нужно чтобы вокруг этого изображения не было рамки.
Источник
Ответы (1 шт):
Автор решения: slippyk
Лучше бы вместо картинки код прилепили для наглядности.
Если нужно убрать рамку у кнопки, то так:
button.FlatAppearance.BorderSize = 0;
button.FlatStyle = FlatStyle.Flat;
→ Ссылка
licensed under cc by-sa 3.0 with attribution.
У меня есть кнопка в моей форме, в которой применяется плоский стиль, и используется фоновое изображение, я удалил все границы с кнопки, но когда я нажимаю кнопку на другом элементе управления, вокруг кнопки появляется черная рамка.
Это можно увидеть на изображении ниже. Слева кнопка с черной рамкой справа — это другая кнопка, но показывает, как должна выглядеть кнопка отмены.
01 апр. 2012, в 19:57
Поделиться
Источник
5 ответов
Я не получаю эту границу, если я устанавливаю BoderSize
в 0
в разделе FlatAppearance
.
Дальнейшее исследование показывает, что эта граница появляется только тогда, когда кнопка является кнопкой по умолчанию. Вы можете создать свою собственную кнопку, которая никогда не показывает эту границу, как это.
public class NoNotifyButton: System.Windows.Forms.Button
{
public override void NotifyDefault(bool value)
{
}
}
Примечание: NotifyDefault
остается намеренно пустым.
Olivier Jacot-Descombes
01 апр. 2012, в 18:57
Поделиться
Вы должны создать новый класс кнопок с помощью IButtonControl
и изменить NotifyDefault
на false:
base.NotifyDefault(false);
Saeid Yazdani
01 апр. 2012, в 19:37
Поделиться
Мне удалось обойти это, установив для свойства TabStop значение False, а затем используя этот код в событии нажатия кнопки
private void sendBackTab()
{
System.Windows.Forms.SendKeys.SendWait("+{TAB}");
}
cbyte
02 фев. 2016, в 06:43
Поделиться
Вам не нужно создавать производный класс.
Вы можете установить ForeColor таким же, как родительский элемент управления BackColor.
Как показано ниже:
btn1.ForeColor = btn1.Parent.BackColor;
Amit Lipman
21 дек. 2015, в 14:41
Поделиться
Вы можете сделать это, установив свойство кнопки «ForeColor» прозрачным
nohack12
10 июнь 2015, в 09:20
Поделиться
Ещё вопросы
- 0Ошибка отправки JSON в POST-запросе к приложению Play
- 0Получение информации с сайта с помощью Jsoup
- 0Как посчитать количество строк за определенные дни
- 1Как реализовать приложение чата в Android?
- 1Управляет вертикальным выравниванием с сеткой слева и справа
- 1Как изменить ссылку на JSON, который копируется в другой объект [duplicate]
- 0Подзапрос по формату базы данных Zend
- 1Обновление базы данных Firebase удаляет дочерние данные
- 1Проблема с ориентацией на Android, без прокрутки
- 0MYSQL каждая таблица должна иметь свою собственную ошибку псевдонима?
- 1Как разделить строку ANSI с неизвестными символами, возвращенными из OpenVMS в C #
- 1Перезапустить приложение с намерения
- 1Попытка нам str.contains и логическая маска, но только для одного значения в Pandas
- 0как установить кликаемый элемент списка в angularJS?
- 0jQuery не работает на моем сайте?
- 0Как получить доступ к `$ scope.search.value`?
- 1Python3: как получить все квадраты и кубики равными или меньшими числа
- 1Ошибка политики безопасности содержимого с помощью Vue JS, Webpack и JSP
- 1Принимаете разные типы ввода массива JSON?
- 1Подстрока с несколькими экземплярами одного и того же символа
- 0SQL-запрос в php пустым
- 1Sublime Text и проект Java на Mac
- 1Исключение в потоке «main» java.lang.UnsupportedClassVersionError: org / apache / derby / derda / NetworkServerControl <Неподдерживаемый major.minor 49.0>
- 0@RequestMapping не получает параметры и значения.
- 0Компилятор C ++ конвертирует big-endian в little-endian [дубликаты]
- 0JQuery Автозаполнение проблемы
- 1Анимация изображения на Windows Phone 8
- 1Как сделать свойство установленным один раз и не может быть изменено?
- 0HTML / CSS страница входа проблемы со стилем в IE не работает
- 0Заказ по ASC в случае, когда
- 0Обнаружение жеста смахивания с скачком движения
- 0Как получить список параметров и их тип системного вызова?
- 0yii2 распечатывает данные из таблицы
- 0C ++ Ошибка при преобразовании int в строку
- 1VisualStyleRenderer возвращает ошибку для пункта меню
- 0Почему этот SQL-запрос на создание таблицы выдает ошибку «# 1071 — Указанный ключ слишком длинный; максимальная длина ключа составляет 767 байт »
- 0Как не вызывать директиву каждый раз, когда я перезагружаю страницу
- 0AngularJS — снятие флажка
- 0Показать детали товара после нажатия на элемент
- 1Android — как накачать сложный макет и добавить в другой макет?
- 1Доступ к службе WCF из PCL
- 0Триггерное событие ввода в угловых
- 0автоматическое увеличение изображения в слайдере изображений в JQuery
- 1Попытка сохранить настройки компорта
- 1Magento 2 вызвать пользовательскую библиотеку в select.html
- 0jQueryUI прокручивает к началу ошибки
- 1как настроить локальное оповещение в кордове каждый день в определенное время
- 0Возникли проблемы с вложенным JOIN
- 0JQPlot, JSON и ошибка «Данные не указаны»
- 0ng-click не работает на объектах с непрозрачностью: 1;