Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
 Аватар для Shax_04
2 / 2 / 0
Регистрация: 02.11.2012
Сообщений: 20

Шахматный фон. DataGridView

12.02.2013, 00:20. Показов 3171. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Порылся в интернете часика так с 2-3, но результата искомого не нашёл.
Есть DataGridView любой размерности. Нужно сделать так, чтобы в чётных строках закрашивались чётные ячейки (фон если хотите), а в нечётных строках - нечётные ячейки.

1 вариант
C++
1
2
3
4
5
6
for (int i = 0; i < m; i++) 
for (int j = 0; j < n; j++) 
{
if (i%2==0 && (i+1)%2==0) {this->dataGridView1->Rows[i]->Cells[j]->Style->BackColor =  ;}
if (i%2!=0 && (i+1)%2!=0) {this->dataGridView1->Rows[i]->Cells[j]->Style->BackColor =  ;}
}
2 вариант
C++
1
2
3
4
5
6
7
8
9
    for (int i = 0; i < m; i++) 
    for (int j = 0; j < n; j++) 
    {
while(i%2==0)// пока строка чётная
    if (j%2==0) this->dataGridView1->Rows[i]->Cells[j]->Style->BackColor = () ;//чётное
 
while(i%2!=0)//пока строка нечётная
    if (j%2!=0) this->dataGridView1->Rows[i]->Cells[j]->Style->BackColor = () ;//нечётное
}
Честно говоря я запутался.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.02.2013, 00:20
Ответы с готовыми решениями:

Прозрачный фон в DataGridView
Нашел в сети класс, благодаря которому можно установить прозрачность у компонента datagridview. public class MyDataGridView :...

Заштриховать фон ячейки dataGridView
Задача такова, мне нужно выделить ячейку dataGridView1.Rows.Cells не цветом а штриховкой, хотел задать текстуркой, но у ячейки не оказалось...

Поставить картинку на фон в DataGridView
Можно ли это сделать? Прямого св-ва нет, но есть запись в msdn -...

13
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
12.02.2013, 03:18
Может так
C++
1
2
3
4
5
6
7
8
for (int i = 0; i < m; i++) 
for (int j = 0; j < n; j++) 
{
if (i%2==j%2) 
  this->dataGridView1->Rows[i]->Cells[j]->Style->BackColor =clBlack ;
else
  this->dataGridView1->Rows[i]->Cells[j]->Style->BackColor =clWhite ;
}
0
 Аватар для Shax_04
2 / 2 / 0
Регистрация: 02.11.2012
Сообщений: 20
12.02.2013, 09:22  [ТС]
Цитата Сообщение от gumi250 Посмотреть сообщение
Может так
C++
1
2
3
4
5
6
7
8
for (int i = 0; i < m; i++) 
for (int j = 0; j < n; j++) 
{
if (i%2==j%2) 
  this->dataGridView1->Rows[i]->Cells[j]->Style->BackColor =clBlack ;
else
  this->dataGridView1->Rows[i]->Cells[j]->Style->BackColor =clWhite ;
}
Программа не понимает, что такое clBlack. Пишет, что необъявленный идентефикатор. Да и условие не то по-моему.
1
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
12.02.2013, 09:52
clBlack это черный цвет. А что такое dataGridView1? И почему вы решили что условие не правильно?
0
 Аватар для Shax_04
2 / 2 / 0
Регистрация: 02.11.2012
Сообщений: 20
12.02.2013, 16:07  [ТС]
Цитата Сообщение от gumi250 Посмотреть сообщение
clBlack это черный цвет. А что такое dataGridView1? И почему вы решили что условие не правильно?
DataGridView - это таблица (матрица) в c++ Windows Form, как в экселе.
Я понял, что clBlack чёрный цвет. Программа говорит, что это переменная.
(i%2==j%2) чётную строку столбцу чётному присвоили или что вы сделали?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33411 / 21521 / 8236
Регистрация: 22.10.2011
Сообщений: 36,922
Записей в блоге: 12
12.02.2013, 16:13
Цитата Сообщение от Shax_04 Посмотреть сообщение
Есть DataGridView любой размерности.
Нет в стандартных Билдеровских компонентах никаких TDataGridView. Какой компонент используется?
0
 Аватар для Shax_04
2 / 2 / 0
Регистрация: 02.11.2012
Сообщений: 20
12.02.2013, 16:32  [ТС]
Цитата Сообщение от UI Посмотреть сообщение
Нет в стандартных Билдеровских компонентах никаких TDataGridView. Какой компонент используется?
Вообще модеры перенесли мою тему из С++ для начинающих в C++ Builder.
Вот скрин.
Миниатюры
Шахматный фон. DataGridView  
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
12.02.2013, 16:48
Shax_04,
Цитата Сообщение от Shax_04 Посмотреть сообщение
Вообще модеры перенесли мою тему из С++ для начинающих в C++ Builder.
Да, слегка напутали

Ячейка:
C#
1
2
3
4
5
6
7
  void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
        {
            if (...)
            {
                e.CellStyle.BackColor = Color.Red;
            }
        }
Строка:
C#
1
2
3
4
5
6
7
      void dataGridView1_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
        {
            if (...)
            {
                ((DataGridView)sender).Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Black;
            }
        }
В данном случае работать со вторым событием (RowPrePaint).
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
12.02.2013, 17:19
Цитата Сообщение от Shax_04 Посмотреть сообщение
(i%2==j%2) чётную строку столбцу чётному присвоили или что вы сделали?
это сравнение четности
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
12.02.2013, 17:30
Тьфу! Надо же ячейки красить. Пардоньте.

Тогда примерно вот так:

C#
1
2
3
4
5
6
7
8
9
10
            for (int i = 0; i < this.dataGridView1.RowCount; i++)
            {
                for (int j = 0; j < this.dataGridView1.ColumnCount; j++)
                {
                    if (i % 2 == j % 2)
                        this.dataGridView1.Rows[i].Cells[j].Style.BackColor = Color.Black;
                    else
                        this.dataGridView1.Rows[i].Cells[j].Style.BackColor = Color.White;
                }
            }
И в белый на белом фоне особого смысла красить нету
2
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
12.02.2013, 17:37
Цитата Сообщение от Shax_04 Посмотреть сообщение
DataGridView - это таблица (матрица) в c++ Windows Form, как в экселе.
Я понял, что clBlack чёрный цвет. Программа говорит, что это переменная.
(i%2==j%2) чётную строку столбцу чётному присвоили или что вы сделали?
Предполагалось, что перед раскраской dataGridView, Вы ознакомились с типами красок. Если переменную использовать, то её надо создать:
C++
1
Color clBlack =Color::Blue;
Или вызывайте значение цвета куда нужно, вроде:
C++
1
...=System::Drawing::Color::Black;
1
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
12.02.2013, 18:27
Shax_04, вот только я так и не понял: у Вас C++ CLI или все-таки C#?
0
 Аватар для Shax_04
2 / 2 / 0
Регистрация: 02.11.2012
Сообщений: 20
12.02.2013, 18:36  [ТС]
Цитата Сообщение от The_Immortal Посмотреть сообщение
Shax_04, вот только я так и не понял: у Вас C++ CLI или все-таки C#?
У меня С++. Visual Studio 2010. Приложение Windows Form. Не с#
0
 Аватар для Shax_04
2 / 2 / 0
Регистрация: 02.11.2012
Сообщений: 20
12.02.2013, 18:53  [ТС]
Спасибо Всем за помощь!
Дописал ещё чуточку. Вот что вышло
C++
1
2
3
4
5
6
7
8
9
10
11
{
    //Color clBlack =Color::Blue; -- обьявлние переменной цвета
for (int i = 0; i < m; i++) 
for (int j = 0; j < n; j++) 
{if (i%2==j%2) // шахматные ячейки и белый текст на чёрном фоне
 
  {this->dataGridView1->Rows[i]->Cells[j]->Style->BackColor = Color::Black;
   this->dataGridView1->Rows[i]->Cells[j]->Style->ForeColor = Color::White;}
    else
   this->dataGridView1->Rows[i]->Cells[j]->Style->BackColor = Color::White; 
}}
m - количество строк;
n - количество столбцов;

Может теперь ещё кому-то пригодится!
Миниатюры
Шахматный фон. DataGridView  
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.02.2013, 18:53
Помогаю со студенческими работами здесь

Убрать задний фон dataGridView
Не могу найти в свойствах dataGridView как убрать задний фон полностью, чтобы было видно только одни ячейки. Т.е. надо показать...

Как задать фон выбранной ячейки DataGridView
Имеем например ячейку dataGridView1.Rows.Cells.Selected = true; Как задать фон для неё (по умолчанию стоит темно-синий). И вообще можно...

Шахматный турнир
Доброго времени суток! Стоит задача написания программы для проведения шахматного турнира. В программе должны быть реализованы функции...

Шахматный GUI
Добрый день комрады. Дело вот в чем, написал я для курсовой консольное приложение решающее шахматную задачу на мат в один ход, все работает...

Шахматный порядок
---


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru