Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/30: Рейтинг темы: голосов - 30, средняя оценка - 4.63
3 / 3 / 0
Регистрация: 10.03.2011
Сообщений: 39

Как закрасить ячейку сетки

07.02.2013, 04:28. Показов 5781. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть нарисованная в событии Paint сетка, нужно закрасить 1 квадрат в ней, как это можно сделать? куда прописывать эту строчку с заливкой? тоже в paint?
И как еще добавить какой-то текст в эту ячейку?
Мне это нужно для реализации алгоритма А*
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.02.2013, 04:28
Ответы с готовыми решениями:

Как закрасить ячейку в dataGridView?
Хочу чтобы ячейки в зависимости от находимого в них числа закрашивались в какой-то цвет. Как это сделать ? пытаюсь прописать вот так: ...

Как закрасить ячейку в ListView
Существует некая табличка 2*2 в которой нужно закрасить ячейку(не текст) 1*2. Как это сделать? ListView1.Items.Add("1*1") :...

Как закрасить ячейку в StringGrid?
Мне необходимо чтобы при нажатии bitbtn закрашивались все ячейки в StringGrid в которых присутствует буква. Я попробовал следующее: ...

6
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
07.02.2013, 07:33
Да, тоже в паинт. Прописывайте в конец для верности.
Цитата Сообщение от Ася13 Посмотреть сообщение
И как еще добавить какой-то текст в эту ячейку?
После закрашивания рисуйте поверх еще текст.
0
3 / 3 / 0
Регистрация: 10.03.2011
Сообщений: 39
07.02.2013, 09:03  [ТС]
Просто тогда по идее паинт будет срабатывать сразу после загрузки формы, а нужно чтобы после того как нажму на кнопку(расставление препятствий и старта,финиша)
0
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
07.02.2013, 09:06
Значить добавье условие в Pain, нажимали ли на кнопку, или нет.
Если нажимали - закрашивать, если нет - не закрашивать.
0
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
07.02.2013, 13:32
а вы создайте свои данные для определения состояния клеток сетки и создайте объект-сетку.
а в паинте просто рисуете весь объект, отрисовывая каждую ячейку в зависимости от ее состояния в объекте.
0
3 / 3 / 0
Регистрация: 10.03.2011
Сообщений: 39
08.02.2013, 00:59  [ТС]
Вот, у меня как-то так получилось, но почему-то периодически появляется не по одному квадрату разных цветов а 2 или 3, а нужно чтобы было по одному, и еще надо чтобы потом мы вводим число и столько квадратов сколько мы ввели закрашиваются черным цветом, а их местоположение рандомное, у меня не получается сделать чтобы сначала была пустая сетка, а потом при нажатии на кнопку закрашивались квадраты
Вложения
Тип файла: rar A-star.rar (43.7 Кб, 29 просмотров)
0
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
11.02.2013, 19:07
1. создаем двумерный массив с размерами сетки(пусть будет short[9,9] cells)
2. каждое значение определяет: 0-пустая клетка, 1 - черная, 2 - красная.
3. заполняем наш массив значениями
4. в методе паинт делаем следующее:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
w = pictureBox1.Width/9;
            h = pictureBox1.Height/9;
            for (int i = 0; i <= 10; i++)
            {
                for (int j = 0; j <= 10; j++)
                {
                    switch(cells[i,j])
                  {
                    case 0: e.Graphics.FillRectangle(new SolidBrush((sender as Control).BackColor), i*widthLines, j* heightLines, (i + 1) * widthLines, (j + 1) * heightLines);
                    case 1: e.Graphics.FillRectangle(new SolidBrush(Color.Black), i*widthLines, j* heightLines, (i + 1) * widthLines, (j + 1) * heightLines);
                    case 0: e.Graphics.FillRectangle(new SolidBrush(Color.Black), i*widthLines, j* heightLines, (i + 1) * widthLines, (j + 1) * heightLines);
                  }
 
                }
            }
еще раз обратите внимание, что вычисление значений для нашего массива следует вынести в отдельный метод.
5. По нажатию кнопки изменяем значения массива и вызываем метод Invalidate формы или контрола.

ах да .. для отрисовки линий есть метод DrawLine.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.02.2013, 19:07
Помогаю со студенческими работами здесь

Как закрасить ячейку в StringGrid?
А как закрасить ячейку(и) в StringGrid?

Как закрасить ячейку грида
Добрый день! Подскажите, как закрасить ячейку грида, чтобы формат ячейки (числовой с разрядами) не испортилась? ячейка грида имеет...

Как закрасить ячейку с локальным минимумом?
нужно закрасить ячеку с локальным минимумом то есть K Sub sum_st() Cells.Clear Set Rng = Range(Cells(1, 1), Cells(10, 10)) ...

Как закрасить определённую ячейку в StringGrid
Как закрасить определённую ячейку черным цветом и чтобы в нее нельзя было вводить букву. Это для создания кроссворда ))) В тексте ниже...

Как закрасить ячейку по мере наведения в stringgrid
вобщем в MouseMove получаю ячейку int R,C; sg-&gt;MouseToCell(X,Y,C,R); TRect rec = sg-&gt;CellRect(C,R); if(C == 1) { ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru