Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.69/26: Рейтинг темы: голосов - 26, средняя оценка - 4.69
Axevine
21 / 21 / 2
Регистрация: 18.10.2010
Сообщений: 117
#1

Невозможно скрыть столбец в DataGridView

25.04.2011, 12:27. Просмотров 4601. Ответов 21
Метки нет (Все метки)

Привет всем!

Помогите, пожалуйста, справиться с проблемой. Не могу понять в чем дело... Есть некоторая таблица DataGridView1 привязанная к таблице в наборе данных DataSet1 через BindingSource, естественно. Задача простейшая - скрыть в моей DataGridView1 столбец "Index" - первичный ключ из DataSet1. Т.е. нужно, чтобы он в моей DataGridView числился, но не отображался. Устанавливаю в свойствах этого столбца Visible = False - в конструкторе он скрывается, а после запуска моей программы снова отображается. Пытался в событии Form_Load прописать DataGridView1.Columns(0).Visible = False, не помогает. Тоже самое делал и в Form_Activated, и в ...Paint - ничего - видно его и всё тут. Но что интересно, что в этой же моей форме есть другой DataGridView привязанный к другой таблице в этом же наборе данных (но через другой BindingSource), так там всё что я хочу скрыть нормально скрывается в свойствах столбца.

Подскажите, где копать?

Спасибо!

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2011, 12:27
Ответы с готовыми решениями:

Как скрыть столбец счетчика в datagridview ?
Всем привет. заранее спасибо за помощь! Есть проект, привязана база, есть...

Скрыть строку в DataGridView
Здравствуйте,я в программировании новичок,подскажите,как можно скрыть строку,...

Скрыть строки DataGridView
Привет всем! Как быстрый скрывать все строка на DGV (страка более 2000)

Скрыть и отобразить несколько DataGridView
Добрый день! Так как с vb.net начал работать относительно недавно столкнулся с...

Скрыть текущую строку в Datagridview
Всем привет.Подскажите пожалуйста как скрыть текущую строку в Datagridview с...

21
nio
5951 / 3357 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
25.04.2011, 15:13 #2
Цитата Сообщение от Axevine Посмотреть сообщение
Подскажите, где копать?
Пройди построчно отладчиком и посмотри на срабатывает ли этот код?
0
Axevine
21 / 21 / 2
Регистрация: 18.10.2010
Сообщений: 117
25.04.2011, 15:28  [ТС] #3
Цитата Сообщение от nio Посмотреть сообщение
Пройди построчно отладчиком и посмотри на срабатывает ли этот код?
Проходил отладчиком. Сразу после запуска программы колонка, которую я сделал невидимой в свойствах столбца DataGridView1 становится видимой, т.е. её Visible = True. Когда в событии DataGridView1_Activated ставлю DataGridView1.Column(0).Visible = False во время отладки Visible этого столбца становится False, при переходе же на след. событие (любое любого контрола) - опять True. Абсолютно нигде в коде у меня нет обращения к моей DataGridView1 на предмет видимости или невидимости. Пытался очистить проект и перестроить заново - ничего. В общем, вышел из положения установив DataGridView1.Column(0).Visible = False в событии RowsAdded, потому как получается что этот столбец становится видимым только при загрузке данных в мой DataSet1 к которому привязана эта таблица.
0
Ciberst
507 / 420 / 19
Регистрация: 16.12.2010
Сообщений: 939
25.04.2011, 16:59 #4
Axevine, случаем потоки не используешь???
0
nio
5951 / 3357 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
25.04.2011, 17:06 #5
Цитата Сообщение от Ciberst Посмотреть сообщение
случаем потоки не используешь?
Да нет, скорее всего использует VS 2005
0
Axevine
21 / 21 / 2
Регистрация: 18.10.2010
Сообщений: 117
25.04.2011, 17:17  [ТС] #6
Я пользуюсь Visual Studio 2008 и 2010. И в том и в другом в моем проекте одна и та же проблема со скрытием колонок.

Цитата Сообщение от Ciberst Посмотреть сообщение
Axevine, случаем потоки не используешь???
Потоки не использую. Просто есть DataSet1, в который грузятся данные из .xml-файла посредством ReadXml, также и сохраняются - WriteXml. Т.е. получается так, что если таблица, к которой привязана DataGridView1 в моем DataSet1 пустая (без строк), то эта колонка нормально скрывается. Ввожу одну - две новых строки, сохраняю (WriteXml), закрываю программу, открываю снова - ReadXml - скрытая колока стала видна.
0
nio
5951 / 3357 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
25.04.2011, 17:21 #7
Цитата Сообщение от Axevine Посмотреть сообщение
Я пользуюсь Visual Studio 2008 и 2010
Прикольно, у меня такой глюк был только в VS2005, сейчас пользуюсь 2008, покачто такой проблемы не встречал
0
Axevine
21 / 21 / 2
Регистрация: 18.10.2010
Сообщений: 117
25.04.2011, 17:31  [ТС] #8
Честно говоря, я тоже до сегодняшнего дня не сталкивался с такой проблемой.

Кроме того, еще маленький казус. В моей DataGridView1 колонки из DataSet1 вставляются по два раза. Т.е. так... Привязал данные к DataGridView1 - все колонки из таблицы в DataSet появились. Запустил программу - все эти колонки повторились второй раз, т.е. колонок в моей DataGridView стало в два раза больше. Удаляю все колонки, создаю по одной привязывая к соответствующим столбцам в DataSet, после запуска опять их вдвое больше. Пришлось еще скрывать повторяющиеся колонки.

Добавлено через 6 минут
Думаю, тут как-то связано с тем, что у меня на форме две DataGridView привязанных к одной таблице в одном и том же наборе данных, но через разные BindingSource. Это мне нужно для того, чтобы в BindingSourc'ах стояли разные Filters, т.е. в первой таблице отображаются строки, если значение ячейки колонки Type = '1', во второй - если Type = '2'. Всё четко фильтруется, но, блин, во второй талице вот эти приколы с Visible и удваивающимися колонками. В первой же DataGridView всё нормально.
0
nio
5951 / 3357 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
25.04.2011, 17:35 #9
Цитата Сообщение от Axevine Посмотреть сообщение
Привязал данные к DataGridView1 - все колонки из таблицы в DataSet появились. Запустил программу - все эти колонки повторились второй раз, т.е. колонок в моей DataGridView стало в два раза больше. Удаляю все колонки, создаю по одной привязывая к соответствующим столбцам в DataSet, после запуска опять их вдвое больше.
Такое чуство, что у тебя студия закосяченная, или framework глючит, попробуй на другом компе компилить, где для установки VS использовался другой дистрибутив.
Кстати я вспомнил, что у меня косяки были, когда я использовал сторонний ActiveX компонент, а остальные проекты работали нормально, у тебя случайно ничего левого нет?

Добавлено через 1 минуту
Цитата Сообщение от Axevine Посмотреть сообщение
Пришлось еще скрывать повторяющиеся колонки.
не выход. Если глюки будут продолжать плодиться, то ты устанешь десятки копий столбцов скрывать...
0
Axevine
21 / 21 / 2
Регистрация: 18.10.2010
Сообщений: 117
25.04.2011, 17:42  [ТС] #10
Цитата Сообщение от nio Посмотреть сообщение
не выход. Если глюки будут продолжать плодиться, то ты устанешь десятки копий столбцов скрывать...
дело в том, что столбцы эти только один раз дублируются. т.е. их 6, запустил программу - стало 12 таких же, и всё больше не дублируются. удалил 6 лишних, запустил - их опять 12... ))

Добавлено через 3 минуты
а насчет закосяченой студии и фреймворка, думаю, маловероятно, потому что проект создан в VS 2008 с Framework 2.0 - там эта проблема. Открываю этот же проект в VS 2010 - соглашаюсь на Framework 4 - та же проблема.
0
nio
5951 / 3357 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
25.04.2011, 17:42 #11
Цитата Сообщение от Axevine Посмотреть сообщение
дело в том, что столбцы эти только один раз дублируются. т.е. их 6, запустил программу - стало 12 таких же
У меня такого прикола не было, я просто говорю, что сейчас у тебя количество столбцов удваивается, но есть вероятность, что через неделю появится глюк, который будет утраивать их количество. Такого быть не должно, поэтому проблему нужно решать.
ActiveX не используешь?
0
Axevine
21 / 21 / 2
Регистрация: 18.10.2010
Сообщений: 117
25.04.2011, 17:48  [ТС] #12
левых ActiveX нет в проекте. только DataSet и два DataGridView, ну и кнопки, конечно

Добавлено через 4 минуты
Цитата Сообщение от nio Посмотреть сообщение
но есть вероятность, что через неделю появится глюк, который будет утраивать их количество. Такого быть не должно, поэтому проблему нужно решать.
Согласен, nio, решить хотелось бы как-то профессионально, а не тупо скрывая ошибочное. Кроме того, где гарантия, что шесть столбцов, которые я скрываю при запуске, чудесным образом не исчезнут отчего не случится Runtime Error, когда клиент заплатит мне деньги и получит готовую программу. )) Буду думать...

вообще, решение этой проблемы вижу пока только одно... все привязки данных, столбцы, их отображения и свойства прописывать не в конструкторе, а в тексте программы, вплоть до создания DataGrid'ов. Но это тогда уже лучше на C++ переходить, чего очень не хотелось бы. ))
0
nio
5951 / 3357 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
25.04.2011, 17:50 #13
как я уже говорил, пробуй на другой машине другой дистрибутив VS.
1
Axevine
21 / 21 / 2
Регистрация: 18.10.2010
Сообщений: 117
25.04.2011, 17:54  [ТС] #14
Цитата Сообщение от nio Посмотреть сообщение
как я уже говорил, пробуй на другой машине другой дистрибутив VS.
конечно попробую, но сомневаюсь, что поможет... не могут же одинаково битыми быть обе моих студии и 2008 и 2010.
0
Юпатов Дмитрий
1613 / 1125 / 224
Регистрация: 23.12.2010
Сообщений: 1,495
26.04.2011, 11:15 #15
Цитата Сообщение от Axevine Посмотреть сообщение
вообще, решение этой проблемы вижу пока только одно... все привязки данных, столбцы, их отображения и свойства прописывать не в конструкторе, а в тексте программы,
ага. Думаю, что столбцы добавляются после того, как ты пытаешься скрывать нулевой. Вот есть такое стойкое ощущение. Поэтому лучше все ручками, а потом ненужный для видимости столбец скрыть. Хотя можно ограничиться только ручной привязкой грида к датасету.
Цитата Сообщение от Axevine Посмотреть сообщение
вплоть до создания DataGrid'ов
ну это уже крайность
1
Axevine
21 / 21 / 2
Регистрация: 18.10.2010
Сообщений: 117
26.04.2011, 11:34  [ТС] #16
Юпатов Дмитрий, спасибо! Пока до этого не дохожу, бо с тем, что я описал в первых сообщениях темы решается, т.е., например, тех удваиваемых столбцов не становится втрое или вчетверо больше. Мне главное в конце работы над программой "Построить проект" и упаковать его в инсталляцию. Тогда он перестанет быть зависимым от VS и раз уж работает у меня на хосте и на виртуальных машинах, то, думаю, у заказчика будет то же самое.
0
Юпатов Дмитрий
1613 / 1125 / 224
Регистрация: 23.12.2010
Сообщений: 1,495
26.04.2011, 11:36 #17
Цитата Сообщение от Axevine Посмотреть сообщение
Тогда он перестанет быть зависимым от VS и раз уж работает у меня на хосте и на виртуальных машинах, то, думаю, у заказчика будет то же самое.
я бы проверил на левой машине перед отправкой заказчику, чтоб не оконфузится
0
Axevine
21 / 21 / 2
Регистрация: 18.10.2010
Сообщений: 117
26.04.2011, 12:02  [ТС] #18
конечно, проверю. у моей жены есть старенький "чистый" Sempron с Windows XP, там и запущу. Всегда так делаю перед отправкой.

Добавлено через 19 минут
Кстати, в очередной раз готов сообщить, что Visul Studio 2010 это не что иное, как небольшая доработка интерфейса VS 2008 с расчетом на .NET Framework 4, причем не особо продуманная. Эти "Мелкие" вместо очередного SP к Visual Studio 2008 выпустили типа "новую" студию по цене именно принципиально Новой программы этого класса. Повторяются все те же ошибки. И не только те, которые я описал в этой теме. По моему они пошли по неверному пути обратной совместимости. Думаю, что принцип IBM модульной сборки компьютеров (как сейчас) с обратной совместимостью безнадежно изжил себя, как показывает Apple. Почему же Microsoft избрали такую стратегию маркетинга? Денег мало? Или умов не хватает?

но это, конечно, сугубо моё мнение...
0
Юпатов Дмитрий
1613 / 1125 / 224
Регистрация: 23.12.2010
Сообщений: 1,495
26.04.2011, 14:42 #19
Цитата Сообщение от Axevine Посмотреть сообщение
Почему же Microsoft избрали такую стратегию маркетинга? Денег мало? Или умов не хватает?
Это обычное поведение мелкомягких (да и не только их, Autodesk тоже хорош).
Просто действительно радикальное изменение в новой версии характерно для фришного софта, а не для платного. Я и так, например, пересел с 2005й версии студии на 2008ю просто по случаю, однако же радикальных изменений не заметил
0
nio
26.04.2011, 15:03     Невозможно скрыть столбец в DataGridView
  #20

Не по теме:

Цитата Сообщение от Юпатов Дмитрий Посмотреть сообщение
Я и так, например, пересел с 2005й версии студии на 2008ю просто по случаю, однако же радикальных изменений не заметил
Мне лично в 2008-й особенно приглянулись автосвойства и расширенные методы, ну и Linq немного, поэтому и пересел :)

0
26.04.2011, 15:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2011, 15:03
Привет! Вот еще темы с ответами:

Убрать или скрыть колонку в DataGridView
Как скрывать нужные колонки в DataGridView я знаю, но как скрыть/убрать...

Скрыть поле в DataGridView слева от всех Columns
Подскажите, пожалуйста, как сделать невидимой поле слева от ДГВ, которое...

Скрыть строки в DataGridView, которые не содержат значений CheckedListBox1
Здрям! Собственно, сабж. Не знаю, как написать: Dim circlefor As Integer =...


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

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

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