|
Цикл по раскраске dataGridView
|
|||
---|---|---|---|
#18+
Добрый день, есть грид заполненный datateble, и есть comboBox заполненный через BindingSourse, вот. В гриде юзеры пишут записи, соответственно в 1м столбце остаются их фамилии например, а в comboBox список этих фамилий, и хотелось бы закрашивать строки в гриде по разному в зависимости от юзера. пытаюсь придумать такой цикл, который будет сравнивать значения, например взял 1й элемент в comboBox, пошёл по гриду нашёл всё такие же равные ему и покрасил в один цвет строки, потом взял 2й элемент в comboBox, нашёл все такие в гриде и окрасил в другой цвет и т.д Уважаемы ГУРУ, прошу помощи, нету опыта в написании циклов,прогуливал когда то(( знаю что лабуду пишу но пока вот так написал: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
знаю до того что я выше описал ещё много строк... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 13:36 |
|
Цикл по раскраске dataGridView
|
|||
---|---|---|---|
#18+
wild888Добрый день, есть грид заполненный datateble, и есть comboBox заполненный через BindingSourse, вот. В гриде юзеры пишут записи, соответственно в 1м столбце остаются их фамилии например, а в comboBox список этих фамилий, и хотелось бы закрашивать строки в гриде по разному в зависимости от юзера. пытаюсь придумать такой цикл, который будет сравнивать значения, например взял 1й элемент в comboBox, пошёл по гриду нашёл всё такие же равные ему и покрасил в один цвет строки, потом взял 2й элемент в comboBox, нашёл все такие в гриде и окрасил в другой цвет и т.д Уважаемы ГУРУ, прошу помощи, нету опыта в написании циклов,прогуливал когда то(( знаю что лабуду пишу но пока вот так написал: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
знаю до того что я выше описал ещё много строк... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 13:39 |
|
Цикл по раскраске dataGridView
|
|||
---|---|---|---|
#18+
если прогуливал азы, то нафига оно тебе сдалось? Я вот одно не пойму, если любой школьник в курсе, что так не делается, то зачем ты занимаешься этим? Пей пиво, слушай музон... for (int j = 0; j <= comboBox6.Items.Count; j++) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 14:18 |
|
Цикл по раскраске dataGridView
|
|||
---|---|---|---|
#18+
Winnipuh, на кого учился, там и пригодился и ни когда ни чего не поздно! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 14:29 |
|
Цикл по раскраске dataGridView
|
|||
---|---|---|---|
#18+
wild888Winnipuh, на кого учился, там и пригодился и ни когда ни чего не поздно! да знаки = то я каэшн затроил уже ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 14:31 |
|
Цикл по раскраске dataGridView
|
|||
---|---|---|---|
#18+
wild888Winnipuh, м.б подскажете,как мне текст в ячейке перевести конвертировать, или что то думается мне что не так надо делать ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 14:34 |
|
Цикл по раскраске dataGridView
|
|||
---|---|---|---|
#18+
в след. году после восстановление не прогуливайте уроки, тогда и проблем не будет ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 14:38 |
|
Цикл по раскраске dataGridView
|
|||
---|---|---|---|
#18+
Roman Mejtes, ну что вы начинаете то... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 14:40 |
|
Цикл по раскраске dataGridView
|
|||
---|---|---|---|
#18+
wild888Roman Mejtes, ну что вы начинаете то...потому что он не прогуливал и ему обидно. Тем не менее, он указал вам на место ошибки - включайте мозг, читайте главу учебника по циклам ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 14:55 |
|
Цикл по раскраске dataGridView
|
|||
---|---|---|---|
#18+
wild888Roman Mejtes, ну что вы начинаете то... монитор еще не треснул от циклов? Код: c# 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 15:22 |
|
Цикл по раскраске dataGridView
|
|||
---|---|---|---|
#18+
Winnipuhwild888Roman Mejtes, ну что вы начинаете то... монитор еще не треснул от циклов? Код: c# 1. 2. 3.
да у меня уже голова вместе с монитором скоро треснут((( ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 15:28 |
|
Цикл по раскраске dataGridView
|
|||
---|---|---|---|
#18+
for (int i = 0; i < dataGridView2.RowCount-1; i++) { for (int j = 1; j < comboBox6.Items.Count; j++) { if (dataGridView1.Rows[i].Cells[0].Value.ToString() != null) { if (comboBox6.Items.Count.ToString()!=null) { i = Convert.ToInt32(dataGridView1.Rows[i].Cells[0].Value.ToString());//ошибка, входная строка имела неверный формат, в Value "иванов и.и." где тут собака зарылась? j = Convert.ToInt32(comboBox6.Items.Count); if (i == j) { dataGridView2.Rows[i].DefaultCellStyle.BackColor = Color.BlanchedAlmond; } } else { dataGridView2.Rows[i].DefaultCellStyle.BackColor = Color.Red; } } } } ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 15:34 |
|
Цикл по раскраске dataGridView
|
|||
---|---|---|---|
#18+
wild888, тебе нужно сделать хотя бы в таком виде. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
В userID пихать что угодно, вплоть до itemindex из combobox. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 15:40 |
|
Цикл по раскраске dataGridView
|
|||
---|---|---|---|
#18+
Pallaris, спасибо вам за помощь) у меня правда в комбо загружается только одно поле с фамилиями, id там нет, НО если я правильно понимаю, можно for (int j = 0; j < comboBox6.Items.Count; j++) и j записать в ["userID"]???нее ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 16:53 |
|
Цикл по раскраске dataGridView
|
|||
---|---|---|---|
#18+
wild888Pallaris, спасибо вам за помощь) у меня правда в комбо загружается только одно поле с фамилиями, id там нет, НО если я правильно понимаю, можно for (int j = 0; j < comboBox6.Items.Count; j++) и j записать в ["userID"]???нее а мне значит - "не спасибо"? помогай после этого людям (ц) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 16:54 |
|
Цикл по раскраске dataGridView
|
|||
---|---|---|---|
#18+
wild888, нет, в строке грида уже должна содержаться более точная инфа (id), чем Фио. Т.е.ты ж сделал, что в гриде сохраняется выбранная из комбы фио? Вот теперь сделай, чтоб незамето сохранялся SelectedIndex ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 17:20 |
|
Цикл по раскраске dataGridView
|
|||
---|---|---|---|
#18+
wild888В гриде ... в 1м столбце остаются их фамилии, в comboBox список этих фамилий взял 1й элемент в comboBox, ... нашёл всё такие же равные ему и покрасил в один цвет строки, взял 2й элемент в comboBox, нашёл все такие в гриде и окрасил в другой цвет Код: c# 1.
В коде указан лишь один цвет, а по описанию нужен список цветов, в которые будут окрашиваться одинаковые фамилии. Обрадую: нужен третий цикл, который будет проходить по списку цветов. Можно попробовать следующее: загоняем фамилии в HashSet или Dictionary (нужно подумать, что будет удобней), а задание цвета ячейке делаем в событии CellFormatting. ЗЫ: слышишь стук в дверь? это майор из военкомата... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 17:37 |
|
Цикл по раскраске dataGridView
|
|||
---|---|---|---|
#18+
Циклы? Не... Циклы не нужны Надо событие RowPrePaint Например, закрашиваются специальным цветом строки, где в колонке 0 в словах есть буква "е". Код: c# 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 18:10 |
|
Цикл по раскраске dataGridView
|
|||
---|---|---|---|
#18+
petalvikв событии CellFormatting. Не самый лучший выбор для закраски всей строки ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 18:11 |
|
Цикл по раскраске dataGridView
|
|||
---|---|---|---|
#18+
petalvikОбрадую: нужен третий цикл, который будет проходить по списку цветов. Ты уж так не пугай человека ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 18:15 |
|
Цикл по раскраске dataGridView
|
|||
---|---|---|---|
#18+
Вообще-то такая идея (по разному раскрашивать строки в зависимости от чего-то) рано или поздно посещает всех, кто выводил значения в грид. Раскрасить не проблема. Проблема в том, что количество цветов для фона, которые не вызывают тошноту и отличаются визуально - ограничено. Поэтому я предлагаю отказаться от идеи красить все, а красить только по выбранному в комбобоксе элементу. Однако и это не очень хорошая идея - мы опять перекладываем отбор на пользователя. Пусть своими глазами ищет В таких случаях я делаю фильтр. То есть не изменяю источник новым запросом, а фильтрую уже загруженное ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 18:30 |
|
Цикл по раскраске dataGridView
|
|||
---|---|---|---|
#18+
Pallariswild888, нет, в строке грида уже должна содержаться более точная инфа (id), чем Фио. Т.е.ты ж сделал, что в гриде сохраняется выбранная из комбы фио? Вот теперь сделай, чтоб незамето сохранялся SelectedIndex да я сделал на событии RowChanged при генерации новой строки, и так как уменя это 1-е большое приложение, я всё быстрей хотел а кусаю локти, у меня в главной таблице нет ключевого поля ID, а сохраняются записи по ключевому полю datetime, там у меня с секундами так то исключения не вылетают....только не ругайте, поздняк уже месяца два работает 1800 записей написали не тормозит,вроде норм... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 19:26 |
|
Цикл по раскраске dataGridView
|
|||
---|---|---|---|
#18+
petalvikwild888В гриде ... в 1м столбце остаются их фамилии, в comboBox список этих фамилий взял 1й элемент в comboBox, ... нашёл всё такие же равные ему и покрасил в один цвет строки, взял 2й элемент в comboBox, нашёл все такие в гриде и окрасил в другой цвет Код: c# 1.
В коде указан лишь один цвет, а по описанию нужен список цветов, в которые будут окрашиваться одинаковые фамилии. Обрадую: нужен третий цикл, который будет проходить по списку цветов. Можно попробовать следующее: загоняем фамилии в HashSet или Dictionary (нужно подумать, что будет удобней), а задание цвета ячейке делаем в событии CellFormatting. ЗЫ: слышишь стук в дверь? это майор из военкомата... нееее меня не берут!!! ну то что тут одиня пытался хотя б для одного сначала сделать... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 19:28 |
|
Цикл по раскраске dataGridView
|
|||
---|---|---|---|
#18+
Cat2Вообще-то такая идея (по разному раскрашивать строки в зависимости от чего-то) рано или поздно посещает всех, кто выводил значения в грид. Раскрасить не проблема. Проблема в том, что количество цветов для фона, которые не вызывают тошноту и отличаются визуально - ограничено. Поэтому я предлагаю отказаться от идеи красить все, а красить только по выбранному в комбобоксе элементу. Однако и это не очень хорошая идея - мы опять перекладываем отбор на пользователя. Пусть своими глазами ищет В таких случаях я делаю фильтр. То есть не изменяю источник новым запросом, а фильтрую уже загруженное ВОТ!, про RowPrePaint можно подумать мне хорошенько...и ещё у мята такая фигня, что дежурные оставляют записи на грид1 например, а для наблюдения мастерам я им данные в гриде 2 показываю, 1й скрываю, вот фильтры я сделал всякие по всем параметрам, но мне тут поступило предложение:"вот зашол я в программу и всё сливается будет хорошо если записи дежурных будут отличаться разными цветами"....вот и сижу 2й день и думаю и туплю...но попробую все ваши идеи и сразу отпишу))) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2015, 19:34 |
|
|
start [/forum/topic.php?fid=20&fpage=83&tid=1401462]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
others: | 339ms |
total: | 487ms |
0 / 0 |