Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.97/34: Рейтинг темы: голосов - 34, средняя оценка - 4.97
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 66

Изменение цвета символов в Label

18.05.2016, 15:19. Показов 7130. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте,каким образом можно реализовать данную задачу,у меня есть шар,который скачет по 10 компонентам label,нужно чтобы при касании шара с каждым компонентов label он менял цвет содержимого каждого label на рандомный?

Вот сам код шара,каким образом сделать выше указанные действия

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace Valik20
{
    public partial class Form1 : Form
    {
        public static double pos_x = 10, pos_y = 0;
        public static int num = 0, speed = 0;
 
        public Form1()
        {
            InitializeComponent();
            speed = 15;
        }
 
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
 
            g.DrawEllipse(new Pen(Brushes.Black, 7), 50 + Convert.ToSingle(pos_x) * speed, 180 + Convert.ToSingle(pos_y) * speed, 60f, 60f);
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
            if (pos_x*speed > 880)
            {
                pos_x = 0;
                pos_y = this.Height / 2;
                timer1.Enabled = false;
            }
            num++;
            pos_y = Math.Sin(num) * 5;
            pos_x++;
            this.Invalidate();
            
        }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.05.2016, 15:19
Ответы с готовыми решениями:

Изменение цвета Label
Подскажите как сделать так, что бы при нажатии на radioButton1 Label1 окрашивался в красный цвет?

Изменение цвета буквы в label
Здравствуйте, есть вопрос: У меня есть строка(все буквы строчные и черного цвета) и в ней, допустим, нужно сделать заглавными и красного...

Изменение цвета у конкретных label на форме
Как мне изменить цвет программно на c# у конкретных label? вот с таким условием: Если label33 белого цвета, то label132, 9, 135 и так...

20
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
19.05.2016, 00:17
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Forms Code
{    public partial class Form1 : Form
    {
      Color[] clr = new Color[10]{Color.Red, Color.Green, ...............}; //Массив цветов
       int n;
     }
 
       private void button1_Click(object sender, EventArgs e)
       {
          Random rnd = new Random();
           n = rnd.Next(0, 9);
             label1.ForeColor = clr[n];
        }    
}
}
1
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 66
19.05.2016, 00:21  [ТС]
Но там не по кнопке чтобы меняло,а я просто запускаю шар,он скачет по лейблам сам и меняет их цвет,как это сделать?
0
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
20.05.2016, 00:10
Лучший ответ Сообщение было отмечено deepside как решение

Решение

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

C#
1
2
3
         Random rnd = new Random();
           n = rnd.Next(0, 9);
             label1.ForeColor = clr[n];
Добавлено через 12 часов 27 минут
Прочел Ваше сообщение, как движется шар. Тогда понятно, как окрашивать текст лейблов.
Расположите лейблы таким же полукругом. Тогда шар будет всегда перескакивать по лейблам.
Одновремено нужно при каждом перескоке менять окраску шрифта.
1
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 66
20.05.2016, 00:21  [ТС]
Я расположил лейблы так,чтобы шар попадал по ним при своём движении,но при первом запуске шара по кнопке он двигается не по всем лейблам,пропускает первый и десятый лейбл,нужна привязка к координатам лейбла наверно,я не знаю как это реализовать в код,сможете помочь?
0
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
20.05.2016, 00:40
Лучший ответ Сообщение было отмечено deepside как решение

Решение

шар должен двигаться по радиусу, который поворачивается скачком на 18 градусов.
Я бы попробовал сделать так: эти радиусы начертить графическим редактором с шаром на конце
После настройки, т.е. после определения координат шара для всех 10 положений, радиусы удалить.
1
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 66
20.05.2016, 07:08  [ТС]
Проблема в том,что я не могу этого сделать,сложно для меня
На листике это я смогу сделать,а вот в коде никак
0
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
20.05.2016, 11:53
Я напишу код, укажите координаты центра вращения и радиус вращения.
А может сделать проще: установить лейблы по вертикали одну за другим и по ним пустить шар
0
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 66
20.05.2016, 12:27  [ТС]
Установил лейблы и сделал шар,чтобы двигался по синусоиде,разобрался с этим,всё получилось,спасибо огромное)
Он теперь скачет,и мне надо,чтобы когда попадал на label,то менял цвет содержимого label на рандомный
Вот моя программа и там есть доступ к коду,посмотрите пожалуйста
Вложения
Тип файла: rar МОЙ КОД.rar (7.85 Мб, 7 просмотров)
0
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
20.05.2016, 15:01
Прочел код, вечером попытаюсь вставить код окраски
0
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 66
20.05.2016, 18:13  [ТС]
Хорошо,буду ждать
0
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
20.05.2016, 19:09
Я уже начал. К сожалению есть много ненужных операций:
1. текстбоксы желательно сразу выкинуть.
2. Сделать массив простейших слов для лейблов,
3. Сделать массив лейблов
4. в цикле присвоить лейблам слова (лейбл.текст = слово)
5. сделать массив цветов
Ваш код сразу станет наполовину короче

Напишите, какого года вижуал студия, у меня 2008
Пришлите код после переделки
0
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 66
20.05.2016, 19:35  [ТС]
Но надо чтобы было так,как сделано у меня,мне так удобней,по-другому не думаю что сделаю,нельзя всё оставить как есть и просто добавить изменение цветов лейблов?
У менять 10-го года визуалка
0
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
20.05.2016, 21:48
Скопировал Вашу программу, запустить не могу, находит ошибку: Form1.Designer.cs строка 14
0
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 66
20.05.2016, 22:21  [ТС]
Там же в 14 строке задаётся начальная позиция шара,не знаю почему там ошибку выбивает
0
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
20.05.2016, 23:58
Итак, компиллятор ошибок не находит, программу я не менял, но программа ни одной кнопкой не запускается.
Более детальное рассмотрение показывает, что программе неработоспособна и подлежит переработке.
Я сделать это не смогу.
С наилучшими пожеланиями
0
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 66
21.05.2016, 00:18  [ТС]
Спасибо большое за всё)
0
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
21.05.2016, 11:33
Сегодня вечером попозже пришлю работающий код, думаю пригодится.
0
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 66
21.05.2016, 16:28  [ТС]
Хорошо)
0
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
21.05.2016, 20:37
Установите 11 лейблов( 11 - вспомогалельный, в работе не виден), таймер и 1 кнопку (включ - выключ) таймера.
Кликните по таймеру, чтобы открылось его окно для вставки кода
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
Forms Code
{    public partial class Form1 : Form
    {
        Boolean bl;
        String[] ss = new String[11] {"   ","AAAAAAA", "BBBBBBB","CCCCCCC","DDDDDDD","EEEEEEE","FFFFFFF",
            "GGGGGGG","HHHHHHH","KKKKKKK","LLLLLLL"};
        Color clr1, clr2; String s;
        Random rnd = new Random();
        Color[] cl = new Color[22];
        int n,t;
        Label[] lbl = new Label[11]; 
 
      private void Form1_Load(object sender, EventArgs e)
      {
 
 
   bl = true;
            timer1.Interval = 1500;  
            clr1 = Color.FromArgb(220, 235, 255);
            clr2 = Color.White;
            t = 1;
            lbl[0] = label11;
            lbl[1] = label1;
            lbl[2] = label2;
            lbl[3] = label3;
            lbl[4] = label4;
            lbl[5] = label5;
            lbl[6] = label6;
            lbl[7] = label7;
            lbl[8] = label8;
            lbl[9] = label9;
            lbl[10] = label10;
            lbl[0].Visible = false;
          
            cl[0] = Color.Red;
            cl[1] = Color.Green;
            cl[2] = Color.Blue;
            cl[3] = Color.Black;
            cl[4] = Color.Brown;
            cl[5] = Color.Aqua;
            cl[6] = Color.BlueViolet;
            cl[7] = Color.Brown;
            cl[8] = Color.Green;
            cl[9] = Color.Cyan;
            cl[10] = Color.DarkBlue;
            cl[11] = Color.Black;
            cl[12] = Color.DarkGreen;
            cl[13] = Color.DarkOrchid;
            cl[14] = Color.Blue;
            cl[15] = Color.Red;
            cl[16] = Color.Gray;
            cl[17] = Color.HotPink;
            cl[18] = Color.Green;
            cl[19] = Color.LawnGreen;
            cl[20] = Color.Maroon;
            cl[21] = Color.Red;
             for (int i = 0; i < 11; i++)
              lbl[i].Text = ss[i];
       }
       private void button1_Click(object sender, EventArgs e)
       {
           if (bl == true)
         {
          timer1.Start();
           button1.Text = "Start";
         }
         else
         {
          timer1.Stop();
           bl = !bl;
            button1.Text = "Ststop";
         }
 
        }
        {          // Окно таймера
            n = rnd.Next(0, 22);
           lbl[10].BackColor = Color.White;
            lbl[t-1].BackColor = Color.White;
             lbl[t].ForeColor = cl[n];
              lbl[t].BackColor = clr1;
               t++;
                if (t > 10)
                 t = 1;
         }
    }
}
}
Добавлено через 13 минут
Кстати: Размеры и расположение лейблов - произвольные, шрифт для текста лейблов - курсор на лейбле, правая клавиша - свойства шрифта для наглядноти размер 14-16, полнота -болд
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.05.2016, 20:37
Помогаю со студенческими работами здесь

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

Изменение цвета сразу всех label на форме
Как мне изменить цвет программно на c# сразу у всех label? Только не так: label133.ForeColor =...

Изменение цвета Label при выборе строки в ListBox
Подскажите, как при смене выбранного Item в ListBox менять текст в Label1 и Label2?

Изменение цвета определенных символов в maskedTextBox
Можно ли в maskedTextBox изменить цвета определенных символов? Например, мне для наглядности нужно сделать 3-й и 4-й символы одним...

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 28.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 28.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 19.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru