Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# Windows Forms

Войти
Регистрация
Восстановить пароль
 
FaceHoof
52 / 58 / 29
Регистрация: 21.04.2014
Сообщений: 658
Завершенные тесты: 3
#1

Изменение цвета текста на кнопках - C#

15.10.2015, 17:54. Просмотров 852. Ответов 3
Метки нет (Все метки)

Здравствуйте.
У меня тут вроде элементарное дело, но уже час туплю
Есть Nое количество кнопочек с текстом двух цветов: светло-жёлтый(LightSalmon) и серый. Пользователь нажимает на любую кнопку и цвет текста на неё становится зелёный. Пользователь нажимает на другую кнопку и другая кнопка меняет цвет своего текста, а предыдущая восстанавливает свой цвет. Раньше, когда все кнопки были одного цвета всё было просто, делал так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
private void ButtonTicket_Click(object sender, EventArgs e)
        {
            this.Activity();
            m_dtSelectedTicket = (DoctorTicketData)((Button)sender).Tag;
            foreach (Control ctrl in pnTicket.Controls)
            {
                if (((Button)ctrl).Tag == m_dtSelectedTicket)
                    ((Button)ctrl).ForeColor = Color.Green;
                else
                    ((Button)ctrl).ForeColor = Color.LightSalmon;
            }
            btnNext.Enabled = (m_dtSelectedTicket != null);
        }
Я пытался создать переменную, которая запомнила бы изначальный цвет и восстановила бы его, но получается полная хрень.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private void ButtonTicket_Click(object sender, EventArgs e)
        {
            this.Activity();
            Color cColor;
            m_dtSelectedTicket = (DoctorTicketData)((Button)sender).Tag;
            foreach (Control ctrl in pnTicket.Controls)
            {
                cColor = ((Button)ctrl).ForeColor;
                if (((Button)ctrl).Tag == m_dtSelectedTicket)
                    ((Button)ctrl).ForeColor = Color.Green;
                else
                    ((Button)ctrl).ForeColor = cColor;
                cColor = Color.Empty;
            }
            btnNext.Enabled = (m_dtSelectedTicket != null);
        }
Помогите сделать нормально. Сам ведь знаю, что здесь не должно быть ничего сложного, туплю просто
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2015, 17:54
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Изменение цвета текста на кнопках (C#):

Изменение цвета текста RadioButton - C#
Ребят вопрос такой, пытаюсь сделать тест. Собственно вопрос в чем как сделать так что бы при выборе radioButton1 и нажатие на кнопку...

Изменение цвета текста в ToolStripMenuItem - C#
Доброго времени суток, в процессе написание приложения возникли трудности с процедурным изменением цвета текста всех элементов в MenuStrip....

Изменение цвета текста в RichTextBox - C#
Здраствуйте =) Подскажите ,пожалуйста, как в RichTextBox менять цвет теста. Хочу написать что то типа текстового редактора для языка, в...

Изменение стандартного цвета выделения текста - C#
Добрый день, подскажите с таким вопросом: При выделении текста к примеру в TextBox, он выделяется стандартно синим, и текст белым. Можно ли...

Изменение цвета и шрифта у выделенного текста - C#
Собственно, в тебе сам вопрос. Как это реализовать? Цвет всего текста я поменять могу, а вот только выделенного нет. Добавлено через...

.NET 4.x ListBox. Изменение цвета текста компонента по значению - C#
Не могу написать вот такую процедуру на c# procedure TForm1.ListBox1Click(Sender: TObject); begin case ListBox1.ItemIndex of 0:...

3
dark94
10 / 10 / 3
Регистрация: 23.04.2013
Сообщений: 81
Завершенные тесты: 2
15.10.2015, 18:02 #2
Когда обходишь все кнопки просто поставьnt условие, если forecolor == LightSalmon, то меняйnt на серый. А потом сендеру forecolor LightSalmon
0
FaceHoof
52 / 58 / 29
Регистрация: 21.04.2014
Сообщений: 658
Завершенные тесты: 3
16.10.2015, 10:14  [ТС] #3
dark94, не работает. Всё становится серым и при колике меняется на LightSalmon.
Так, у меня изначально существуют кнопки с цветами LightSalmon и Gray мне нужно, что бы при клике на любую из кнопок её цвет сменился на Green, а по клике на другую кнопку цвет предыдущей стал прежним.

Добавлено через 30 минут
Всё, проблема решилась.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
private void ButtonTicket_Click(object sender, EventArgs e)
        {
            this.Activity();
            m_dtSelectedTicket = (DoctorTicketData)((Button)sender).Tag;
            foreach (Control ctrl in pnTicket.Controls)
            {
                if (((Button)ctrl).Tag == m_dtSelectedTicket)
                {
                    if (((Button)ctrl).ForeColor == Color.Gray)
                    {
                        ((Button)ctrl).ForeColor = Color.Red;
                    }
                    if (((Button)ctrl).ForeColor == Color.LightSalmon)
                        ((Button)ctrl).ForeColor = Color.Green;
                }
                else
                {
                    if (((Button)ctrl).ForeColor == Color.Red)
                        ((Button)ctrl).ForeColor = Color.Gray;
                    if (((Button)ctrl).ForeColor == Color.Green)
                        ((Button)ctrl).ForeColor = Color.LightSalmon;
                }
                //cColor = Color.Empty;
            }
            btnNext.Enabled = (m_dtSelectedTicket != null);
        }
0
wendstor
132 / 132 / 35
Регистрация: 15.05.2012
Сообщений: 501
16.10.2015, 10:40 #4
C#
1
2
3
4
5
6
7
8
9
10
11
        private void button1_Click(object sender, EventArgs e)
        {
                foreach (Control ctrl in Controls)
                {
                    if ( ctrl.TabIndex == ((Control)sender as Button).TabIndex)
                        ((Control)sender as Button).ForeColor = Color.Green;
                    else
                        (ctrl as Button).ForeColor = Color.Black;
                }
 
        }
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2015, 10:40
Привет! Вот еще темы с ответами:

RichTextBox: изменение цвета лишь для нужного текста - C#
Есть RichtextBox, я в него программно вводу какие-то данные, каждый тип данных должен иметь свой цвет. Как мне сделать так,чтобы одна...

Изменение шрифта на кнопках - C#
Всем привет! Создал кнопку при нажатии, которой меняется разрешение главной формы. На главной форме тоже есть кнопки их размер я смог...

Стартовое добавление текста в кнопках - C#
Здраствуйте. Пишу игру "Балда". На данный момент есть две формы 1) Начальное меню аля "Новая игра", "Настройки", "Выход". 2) Игровое поле...

Изменение цвета названия файла/папки (либо цвета подсветки) - C#
Привет супер уважаемые супер форумчане!) Очень интересно, есть ли какой-то способ изменить цвет названия файла/папки, либо изменить цвет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru