При определённом стечении обстоятельств (зависит от массива, передаваемого в форму) данные в ListBox'е формы выглядят "обрезанными" и неудобно искать в таком списке. Решение, которое нашёл — использовать ListStyle=1 (Option). Самый нормально отображаемый (всё равно недостаточно) шрифт из популярных — TimesNewRoman (пробовал Calibri, Arial и моноширинные — не то).
Можно ли как-то ещё побороть такую фигню? Подобная проблема, кстати, наблюдалась также и в известном DropDownList от nerv'а…
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Jack Famous, как вы такое получили. Сколько не играл со шрифтами в ListBox ни разу такого не видел. А Repaint пробовали?
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. А в том, чтобы писать программы, работающие при любом количестве ошибок.
шрифт Courier вообще жуть (см. скрин 1). На втором - настройки ListBox по категориям С TimesNewRoman всё почти нормально - только у букв "р" и "у" нижние "хвосты" обрезает (скрины 3 и 4). При выделении уже всю строку немного режет.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
vikttur, нормально всё с ней, я думаю — иначе не только бы в ListBox шалило БМВ, в DropDown такая же фигня была на длинных строчках, и было это года 2 назад уже… Так что вряд ли дрова. Тем более, что TNR же практически нормально отображает.
Но самое главное, что форма лежит внутри надстройки и меняются только данные для неё. Получается, что отображение меняется в зависимости от данных (только что заметил) хотя в обоих случаях передаю одномерный массив (ключи словаря dic.Keys)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Перерисовать форму после заполнения Listbox. Me.Repaint
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. А в том, чтобы писать программы, работающие при любом количестве ошибок.
Добавил форму в шапку (должна работать). При таком наполнении артефакты не проявляются.
Заметил, что при ListStyle=1 (Option) количество элементов рассчитывается корректно — с pt от 8 до 11 (включительно) количество видимых элементов ListBox без прокрутки одинаковое, потом начинает уменьшаться (без искажений). Сделал вывод, что размер этих OptionButtons соответствует 11 величине шрифта TNR
Получается, что при ListStyle=0 (Plain) некорректно рассчитывается количество элементов при определённых условиях (условия определить не удалось). При этом, если выставить "автовысоту" IntegralHeight=True (точно не гуглил, что это), то список вообще при поиске начинает "сползать" за форму (вниз)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. А в том, чтобы писать программы, работающие при любом количестве ошибок.
UPD: новый прикол. С кнопками при пограничном размере шрифта в 11pt (макс. количество элементов в списке без скролла) он всё-равно немного "обрезает". Зато можно выставить 8-10pt и всё норм Без "кнопок" (plain) игры с величиной шрифта не канают…
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. А в том, чтобы писать программы, работающие при любом количестве ошибок.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
никогда не загонялся этим. По теме. Интересно получается. Открывал на работе форму несколько строк были обрезаны как раз те, которые визуально уменьшены. Но вполне смотрибельно. Открыл дома всё ОК. Дома W7x86, Office 2010 x86. На работе W7x64, Office 2013 x64. Скрин как дома отображается
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. А в том, чтобы писать программы, работающие при любом количестве ошибок.
OFF Alemox, когда поле содержит длинные строки, бывает очень удобно. Поставил себе по-умолчанию (кроме шапки в первой строке)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Всё таки наверное что-то от видюхи зависит или ещё каких дров в системе.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. А в том, чтобы писать программы, работающие при любом количестве ошибок.
Alemox, а у меня файл-пример нормально отображается (win7, x64), а вот рабочий барахлит в зависимости от данных… Наверное вы все правы по поводу проблем с софтом, но я никак не пойму — как так можно: форма одна, а отображается по-разному…
И как мне теперь вычленить эту проблему с софтом, чтобы решить — ума не приложу… Тупо обновлять дрова?…
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Не верное решение, нужно прочитать что обкуренный медведь пишет в #4 и #6 и подойти творчески посмотреть что, за чип(карата) какие драйвера есть у производителей. Не всегда последние самые лучшие, не всегда исходные хуже остальных. Были случаи, но это касаемо ноутбуков, когда драйвера от производителя ноутбука работали более корректно чем от производителя чипа. Да и сейчас с обновлениями от MS могут прилететь драйвера которые работают хуже чем были. Совершенно недавно был пример, Synoptic прилеталл и все с виду хорошо, только тачпэд прекращал работать.
БМВ, то, что с умом надо подходить — оно, конечно бесспорно, но почему "глюк видяхи" сбоит ТОЛЬКО в Excel, ТОЛЬКО в UserForm, ТОЛЬКО в ListBox и ТОЛЬКО с разными данными. Получается, что у Alemox тоже проблемы?))) Я думаю, что дело всё-таки в Excel (сборка, конфликты и прочее). Решение через Option пока устраивает, так что спущу на тормозах
P.S.: Если кто "побеждал", то протестирую способ
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Jack Famous написал: но почему "глюк видяхи" сбоит ТОЛЬКО в Excel, ТОЛЬКО в UserForm, ТОЛЬКО в ListBox и ТОЛЬКО с разными данными
Алексей, ну вы же не проводите крупномасштабный тест с использованием кейсов из разных областей, которые могут выявить проблемы и в других программа, объектах ..... Просто у Вас всплыл этот баг. К слову я не гарантирую, что это реально драйвера, но проверить надо. Для начала на ПК который имеет другую конфигурацию железа. К стати элементарная виртуалка уже покажет есть ли завязка на железо или нет. Потом ОС, потом версию Excel. У меня на 2013 не воспроизводится на вашем файле проблема.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄