|
Непонятное поведение ComboBox
|
|||
---|---|---|---|
#18+
Почему-то слетает DisplayMember после того, как DataSource присваивается null. Причем только со второго присвоения. Например, создадим форму, кинем на нее ComboBox и Button. Проставим в дизайнере формы сво-ва DisplayMember и ValueMember у ComboBox-а. По нажатию кнопки будем выполнять сл код: Код: c# 1. 2. 3.
При первом нажатии список заполнится значениями и будет выбран элемент SomeValue. При повторном нажатии у меня выдает "WindowsFormsApplication1.SomeClass". Это произошло, т.к. слетело св-во DisplayMember. Кто-нить знает, почему так происходит? Это глюк или особенность? Сброс происходит после строки comboBox1.DataSource = null. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 15:40 |
|
Непонятное поведение ComboBox
|
|||
---|---|---|---|
#18+
Супер_Пав, В .Net много подобных глюков. Не только с ComboBox, но и с другими Common Controls. Приведу пример. У меня в дизайнере стоит шрифт Microsoft Sans Serif; 8,25pt (он по дефолту). При загрузке формы если OS>= Vista, хочется установить Segoe UI 9. Код: vbnet 1. 2.
Приводит к тому, что весь текст во всех ComboBox-ах становится выделенным. (казалось бы, какое отношение) Приходится делать workaround: Код: vbnet 1. 2. 3.
С тем что что-то пропадало в Combobox тоже сталкивался. Другие глюки могут возникать при допиливании через API. Причем иногда API не срабатывают как должно, потому как уже понавешано всякой мути, типа неродных тултипов. Ну, надо воспринимать как есть (вопросы "а пачему" бессмысленны), играться с кодом, как правило решение находится (всяко проще чем запиливать контролы с нуля через API). Но, к слову, в том же VB6 таких "неожиданностей" никогда не возникало. А здесь типичная ситуация, что "фича" оборачивается "глюком". Еще могу дать общее соображение, не всегда стоит в дизайнере изменять "дефолты", это иногда может привести к подобным глюкам. (код "дизайнера" бодается с кодом скажем в Form.Load и не всегда очевидно кто кого осилит.) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 16:33 |
|
Непонятное поведение ComboBox
|
|||
---|---|---|---|
#18+
Я просто не ожидал такого, даже подумать не мог. Как итог, в боевую базу попали записи вида "WindowsFormsApplication1.SomeClass". Вот это жесткая подстава оказалась. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 16:43 |
|
Непонятное поведение ComboBox
|
|||
---|---|---|---|
#18+
Супер_Пав в боевую базу попали записи вида "WindowsFormsApplication1.SomeClass Еще надо аккуратно использовать всякие .ToString, если не думая то могут быть сюрпризы. Например я в vb.net предпочитаю таки CStr(value) вместо value.ToString . Надо в контексте смотреть что у тебя код там вычисляет. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2018, 22:29 |
|
Непонятное поведение ComboBox
|
|||
---|---|---|---|
#18+
Да, неприятный глюк. Я не уверен, исходников под рукой нет, да и давно это было, но вроде помогает после Код: c# 1. 2.
снова определить DataMember ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2018, 16:51 |
|
Непонятное поведение ComboBox
|
|||
---|---|---|---|
#18+
Cat2 Код: c# 1.
Это лишнее, кстати. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2018, 16:52 |
|
Непонятное поведение ComboBox
|
|||
---|---|---|---|
#18+
Cat2Да, неприятный глюк. Я не уверен, исходников под рукой нет, да и давно это было, но вроде помогает после Код: c# 1. 2.
снова определить DataMember Да, так и решил проблему ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2018, 17:13 |
|
|
start [/forum/topic.php?fid=20&fpage=28&tid=1399247]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 283ms |
total: | 420ms |
0 / 0 |