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

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

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


Наоборот то есть
...
Рейтинг: 0 / 0
Не прописовывается ComboBox на форме после обновления DataSource...
    #39627246
max950
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Не прописовывается ComboBox на форме после обновления DataSource...
    #39627253
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
max950,

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


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