Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
FaceHoof
52 / 58 / 43
Регистрация: 21.04.2014
Сообщений: 731
Завершенные тесты: 3
#1

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

15.10.2015, 17:54. Просмотров 936. Ответов 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
Ответы с готовыми решениями:

Изменение цвета текста в ToolStripMenuItem
Доброго времени суток, в процессе написание приложения возникли трудности с...

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

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

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

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

3
dark94
10 / 10 / 9
Регистрация: 23.04.2013
Сообщений: 81
Завершенные тесты: 2
15.10.2015, 18:02 #2
Когда обходишь все кнопки просто поставьnt условие, если forecolor == LightSalmon, то меняйnt на серый. А потом сендеру forecolor LightSalmon
0
FaceHoof
52 / 58 / 43
Регистрация: 21.04.2014
Сообщений: 731
Завершенные тесты: 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
133 / 133 / 64
Регистрация: 15.05.2012
Сообщений: 502
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

ListBox. Изменение цвета текста компонента по значению
Не могу написать вот такую процедуру на c# procedure...

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

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


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

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

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