|
Не прописовывается ComboBox на форме после обновления DataSource...
|
|||
---|---|---|---|
#18+
Здравствуйте, возникла следующая проблема: Есть Windows форма (C#), на ней несколько контролов, в том числе и исследуемый combobox. При создании формы инициализируются компоненты, при этом формируется запрос в базу на основе которого заполняется datasource комбобокса. После этого все работает нормально, комбобокс нормально отображается , список нормально отображается, выбираются значения и т.п. Но если при открытой форме повторно выполнить код, заполняющий datasource, то происходит следующее: Items комбобокса нормально обновляются, это видно по измененному списку. При раскрытии списка, если курсор мыши проходит над списком, то элемент не выделяется (не подсвечивается синим). Если выбрать нужное значение, то SelectedItem устанавливается, это видно по изменениям в других контролах, но в самом комбобоксе выбранное значение не отображается. Еще есть плавающий глюк (иногда он появляется, сейчас перестал): если перекрыть форму другим окном, а затем вернуть, то поле, занимаемое комбобоксом не обновляется, т.е. остается изображение от наложенной формы. На всякий случай: после установки Datasource устанавливал значения DisplayMember и ValueMember. Не помогло. При создании формы используется файл ресурсов. Предполагаю после всех плясок с бубном, что косяк все-таки идет со стороны формы. Но возможно я ошибаюсь. Кто-нибудь сталкивался с подобным? Подскажите куда копать. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2018, 11:00 |
|
Не прописовывается ComboBox на форме после обновления DataSource...
|
|||
---|---|---|---|
#18+
max950если перекрыть форму другим окном, а затем вернуть, то поле, занимаемое комбобоксом не обновляется, т.е. остается изображение от наложенной формы. Есть такое дело. Не обновляются все визуальные компоненты, которых в момент обновления источника не было видно. Как боролся - сейчас точно не помню, но победил. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2018, 12:43 |
|
Не прописовывается ComboBox на форме после обновления DataSource...
|
|||
---|---|---|---|
#18+
max950, Версия Net какая? Может Repaint\Refresh\Invalidate Controls? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2018, 13:00 |
|
Не прописовывается ComboBox на форме после обновления DataSource...
|
|||
---|---|---|---|
#18+
Ох, до понедельника подробностей не скажу, по - моему .Net 4.5 Invalidate - Update пробовал, не получилось. Сейчас возникла мысль, что может быть образом запускается скрытно BeginUpdate() , а EndUpdate() не приходит. В понедельник попробую тупо EndUpdate() впихнуть, вдруг поможет... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2018, 13:13 |
|
Не прописовывается ComboBox на форме после обновления DataSource...
|
|||
---|---|---|---|
#18+
max950моему .Net 4.5 пробуй 4.6. Я не спец в Net, но вроде сборка длл уже же другая будет для контрола. max950Invalidate - Update пробовал, не получилось. пробуй ещё. Ведь в десктопе можно всё что угодно. Вплоть до программного открытия комбобокса и замены его содержимого. А также установить на него фокус и он должен перерисовываться. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2018, 14:34 |
|
Не прописовывается ComboBox на форме после обновления DataSource...
|
|||
---|---|---|---|
#18+
max950Но если при открытой форме повторно выполнить код, заполняющий datasource, Комбобокса или комбобокса и основной таблицы? max950после установки Datasource устанавливал значения DisplayMember и ValueMember. Не помогло. Попробуйте перед обновлением Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2018, 17:01 |
|
Не прописовывается ComboBox на форме после обновления DataSource...
|
|||
---|---|---|---|
#18+
Cat2 Код: c# 1. 2.
Наоборот то есть ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2018, 08:16 |
|
Не прописовывается ComboBox на форме после обновления DataSource...
|
|||
---|---|---|---|
#18+
Cat2max950Но если при открытой форме повторно выполнить код, заполняющий datasource, Комбобокса или комбобокса и основной таблицы? max950после установки Datasource устанавливал значения DisplayMember и ValueMember. Не помогло. Попробуйте перед обновлением Код: c# 1. 2.
Я заполняю новый список вспомогательных элементов, которые заполняются информацией из базы данных, затем эту структуру присваиваю датасорсу комбобокса: my_cb.Datasource = MyDatasource; По сути у дейтасорса меняется адрес. Код: c# 1. 2.
[/quot] Делал это, правда я делал valueMember = null; Не помогло. Т.е. проявление этого я заметил, мой другой косяк проявился в другом месте, но сути это не поменяло. Items у комбобокса в принципе перезаполняются, но сам комбобокс перестает перерисовываться. В понедельник попробую внести некоторые изменения, если будет положительный результат, отпишусь. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2018, 09:00 |
|
Не прописовывается ComboBox на форме после обновления DataSource...
|
|||
---|---|---|---|
#18+
max950, Refresh() формы-то делали? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2018, 09:14 |
|
Не прописовывается ComboBox на форме после обновления DataSource...
|
|||
---|---|---|---|
#18+
В общем, из всех перепробованных средств помог вызов EndUpdate() для контрола. Теперь нужно понять, каким образом отрабатывает BeginUpdate()... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.04.2018, 11:47 |
|
|
start [/forum/topic.php?fid=20&msg=39627151&tid=1399425]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 300ms |
total: | 445ms |
0 / 0 |