Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Не прописовывается ComboBox на форме после обновления DataSource... / 11 сообщений из 11, страница 1 из 1
07.04.2018, 11:00
    #39627105
max950
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не прописовывается ComboBox на форме после обновления DataSource...
Здравствуйте,
возникла следующая проблема:
Есть Windows форма (C#), на ней несколько контролов, в том числе и исследуемый combobox.
При создании формы инициализируются компоненты, при этом формируется запрос в базу
на основе которого заполняется datasource комбобокса. После этого все работает нормально,
комбобокс нормально отображается , список нормально отображается, выбираются значения и т.п.
Но если при открытой форме повторно выполнить код, заполняющий datasource, то происходит следующее:
Items комбобокса нормально обновляются, это видно по измененному списку.
При раскрытии списка, если курсор мыши проходит над списком, то элемент не выделяется (не подсвечивается синим).
Если выбрать нужное значение, то SelectedItem устанавливается, это видно по изменениям в других контролах,
но в самом комбобоксе выбранное значение не отображается.
Еще есть плавающий глюк (иногда он появляется, сейчас перестал): если перекрыть форму другим окном, а затем вернуть,
то поле, занимаемое комбобоксом не обновляется, т.е. остается изображение от наложенной формы.
На всякий случай: после установки Datasource устанавливал значения DisplayMember и ValueMember. Не помогло.
При создании формы используется файл ресурсов.
Предполагаю после всех плясок с бубном, что косяк все-таки идет со стороны формы. Но возможно я ошибаюсь.
Кто-нибудь сталкивался с подобным? Подскажите куда копать.
Спасибо.
...
Рейтинг: 0 / 0
07.04.2018, 12:43
    #39627116
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не прописовывается ComboBox на форме после обновления DataSource...
max950если перекрыть форму другим окном, а затем вернуть,
то поле, занимаемое комбобоксом не обновляется, т.е. остается изображение от наложенной формы.
Есть такое дело. Не обновляются все визуальные компоненты, которых в момент обновления источника не было видно.
Как боролся - сейчас точно не помню, но победил.
...
Рейтинг: 0 / 0
07.04.2018, 13:00
    #39627118
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не прописовывается ComboBox на форме после обновления DataSource...
max950,
Версия Net какая?
Может
Repaint\Refresh\Invalidate Controls?
...
Рейтинг: 0 / 0
07.04.2018, 13:13
    #39627122
max950
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не прописовывается ComboBox на форме после обновления DataSource...
Ох, до понедельника подробностей не скажу, по - моему .Net 4.5

Invalidate - Update пробовал, не получилось.

Сейчас возникла мысль, что может быть образом запускается скрытно BeginUpdate() ,
а EndUpdate() не приходит.
В понедельник попробую тупо EndUpdate() впихнуть, вдруг поможет...
...
Рейтинг: 0 / 0
07.04.2018, 14:34
    #39627132
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не прописовывается ComboBox на форме после обновления DataSource...
max950моему .Net 4.5
пробуй 4.6.
Я не спец в Net, но вроде сборка длл уже же другая будет для контрола.
max950Invalidate - Update пробовал, не получилось.
пробуй ещё.
Ведь в десктопе можно всё что угодно.
Вплоть до программного открытия комбобокса и замены его содержимого.
А также установить на него фокус и он должен перерисовываться.
...
Рейтинг: 0 / 0
07.04.2018, 17:01
    #39627151
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не прописовывается ComboBox на форме после обновления DataSource...
max950Но если при открытой форме повторно выполнить код, заполняющий datasource,
Комбобокса или комбобокса и основной таблицы?
max950после установки Datasource устанавливал значения DisplayMember и ValueMember. Не помогло.
Попробуйте перед обновлением
Код: c#
1.
2.
displayMember = null;
valueMember = "";
...
Рейтинг: 0 / 0
08.04.2018, 08:16
    #39627242
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не прописовывается ComboBox на форме после обновления DataSource...
Cat2
Код: c#
1.
2.
displayMember = null;
valueMember = "";


Наоборот то есть
...
Рейтинг: 0 / 0
08.04.2018, 09:00
    #39627246
max950
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не прописовывается ComboBox на форме после обновления DataSource...
Cat2max950Но если при открытой форме повторно выполнить код, заполняющий datasource,
Комбобокса или комбобокса и основной таблицы?
max950после установки Datasource устанавливал значения DisplayMember и ValueMember. Не помогло.
Попробуйте перед обновлением
Код: c#
1.
2.
displayMember = null;
valueMember = "";




Я заполняю новый список вспомогательных элементов, которые заполняются информацией из базы данных, затем эту структуру присваиваю датасорсу комбобокса: my_cb.Datasource = MyDatasource;
По сути у дейтасорса меняется адрес.

Код: c#
1.
2.
displayMember = null;
valueMember = "";

[/quot]

Делал это, правда я делал valueMember = null;

Не помогло. Т.е. проявление этого я заметил, мой другой косяк проявился в другом месте, но сути это не поменяло.
Items у комбобокса в принципе перезаполняются, но сам комбобокс перестает перерисовываться.

В понедельник попробую внести некоторые изменения, если будет положительный результат, отпишусь.
...
Рейтинг: 0 / 0
08.04.2018, 09:14
    #39627253
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не прописовывается ComboBox на форме после обновления DataSource...
max950,

Refresh() формы-то делали?
...
Рейтинг: 0 / 0
09.04.2018, 11:47
    #39627441
max950
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не прописовывается ComboBox на форме после обновления DataSource...
В общем, из всех перепробованных средств помог вызов EndUpdate() для контрола.
Теперь нужно понять, каким образом отрабатывает BeginUpdate()...
...
Рейтинг: 0 / 0
09.04.2018, 13:28
    #39627504
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не прописовывается ComboBox на форме после обновления DataSource...
max950,
Сам должен вызывать begin....end....
Чтобы события выклчить и не моргало
Ну или глюк какой.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Не прописовывается ComboBox на форме после обновления DataSource... / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]