Приложение Windows Forms. Есть форма (c AutoScroll = true), на которой располагается множество таблиц. Когда имеется достаточно много данных, всплывает ограничение Windows на высоту окна/контрола (не может быть больше 32767 пикселов). Причина этого ограничения ясна — при передаче сообщения WM_SIZE ширина и высота окна упаковываются в 16 бит.
Из-за этого нижняя часть формы с таблицами не отображается (обрезается).
Есть ли идеи, как обойти это ограничение с минимальными изменениями формы?
Здравствуйте, _NaN_, Вы писали:
_NN>Приложение Windows Forms. Есть форма (c AutoScroll = true), на которой располагается множество таблиц. Когда имеется достаточно много данных, всплывает ограничение Windows на высоту окна/контрола (не может быть больше 32767 пикселов). Причина этого ограничения ясна — при передаче сообщения WM_SIZE ширина и высота окна упаковываются в 16 бит.
_NN>Из-за этого нижняя часть формы с таблицами не отображается (обрезается).
_NN>Есть ли идеи, как обойти это ограничение с минимальными изменениями формы?
Не делать таблиц высотой 32к пикселей. Я сильно сомневаюсь, что на все эти данные смотрят одновременно — разбейте по закладкам, формам, етс.
С уважением, Анатолий Попов.
ICQ: 995-908
Re[2]: Высота Form не может быть больше 32767 пикселов?
Здравствуйте, Aen Sidhe, Вы писали:
AS>Не делать таблиц высотой 32к пикселей. Я сильно сомневаюсь, что на все эти данные смотрят одновременно — разбейте по закладкам, формам, етс.
Понятно, что так можно сделать. Но вопрос в том, можно ли этого избежать
Re[3]: Высота Form не может быть больше 32767 пикселов?
Здравствуйте, _NaN_, Вы писали:
_NN>Здравствуйте, Aen Sidhe, Вы писали:
AS>>Не делать таблиц высотой 32к пикселей. Я сильно сомневаюсь, что на все эти данные смотрят одновременно — разбейте по закладкам, формам, етс.
_NN>Понятно, что так можно сделать. Но вопрос в том, можно ли этого избежать
Избежать чего?
Просто, вот берём 24" монитор. Не такой и маленький. У него по вертикали 1200 пикселей всего разрешение (рекомендуемое, конечно, берём).
Теперь берём вашу форму. Это 30 экранов информации, которая не табличная (иначе, в гриде можно сделать прокрутку), не графическая (есть масштаб и прокрутка в графиках), не большие массивы текстов (во всех текстовых контролах есть прокрутка), не наборы "имя-значение" (в проперти гриде есть прокрутка). Она точно предназначена для восприятия человеком?
С уважением, Анатолий Попов.
ICQ: 995-908
Re[4]: Высота Form не может быть больше 32767 пикселов?
Здравствуйте, Aen Sidhe, Вы писали:
AS>Просто, вот берём 24" монитор. Не такой и маленький. У него по вертикали 1200 пикселей всего разрешение (рекомендуемое, конечно, берём).
AS>Теперь берём вашу форму. Это 30 экранов информации, которая не табличная (иначе, в гриде можно сделать прокрутку), не графическая (есть масштаб и прокрутка в графиках), не большие массивы текстов (во всех текстовых контролах есть прокрутка), не наборы "имя-значение" (в проперти гриде есть прокрутка). Она точно предназначена для восприятия человеком?
Информация — табличная. Просто таблиц много, а не одна. Каждая таблица — кастом контрол.
Цель моего вопроса — не обсуждение юзабилити (так как работаем с готовым, работающим приложением), а решение конкретной проблемы.
Re[5]: Высота Form не может быть больше 32767 пикселов?
Здравствуйте, _NaN_, Вы писали:
_NN>Цель моего вопроса — не обсуждение юзабилити (так как работаем с готовым, работающим приложением), а решение конкретной проблемы.
Используйте TabControl или нечто вроде.
Разработчикам ОС в страшном сне не снилось поведение окошка размером большего, чем хотите использовать вы.
И как только это экселю удается рисовать таблицу 65536 строки на 17 пикселей
Здравствуйте, muse, Вы писали:
M>Здравствуйте, _NaN_, Вы писали:
_NN>>Цель моего вопроса — не обсуждение юзабилити (так как работаем с готовым, работающим приложением), а решение конкретной проблемы.
M>И как только это экселю удается рисовать таблицу 65536 строки на 17 пикселей
Я надеюсь, это сарказм? Ибо у экселя не 32 тыщи пикселей размер окна.
ЗЫ: 2007й эксель умеет миллион строк.
С уважением, Анатолий Попов.
ICQ: 995-908
Re[7]: Высота Form не может быть больше 32767 пикселов?
Лучше присмотритесь к виртуальным гридам. Это более конструктивный подход, нежели использование большого числа WinForms контролов, каждый из которых — суть окно, со своим дескриптором.
Здравствуйте, Pavel M., Вы писали:
PM>Здравствуйте, NightBlade, Вы писали:
NB>>http://bash.org.ru/quote/401138
PM>не открывается
Цитату с сайта удалили. Может ей натыркали много минусов или баянов.
Из рсски:
Цитата #401138
от Bash.Org.Ru
rsdn.ru
Есть форма, на которой располагается множество таблиц. Когда имеется достаточно много данных, всплывает ограничение Windows на высоту окна/контрола (не может быть больше 32767 пикселов). [skipped]
Есть ли идеи, как обойти это ограничение с минимальными изменениями формы?