Есть автономная WinForm, заполненная DataGridView.
В конструкторе DataGridView заполняется столбцами и строками, выравнивание всех размеров установлено AllCell.
Затем форма показывается, но с обоими ScrollBar'ами, т.к. итоговый размер грида больше исходных размеров формы.
Вопрос: как автоматически изменить размеры формы так, чтобы области прокрутки исчезли?
Может, алгоритм расчета какой есть?
Здравствуйте, Аноним, Вы писали:
А>Вопрос: как автоматически изменить размеры формы так, чтобы области прокрутки исчезли?
Попробовать в FormShown сделать ClientRect = dataGridView.Size ? И делать то же каждый раз когда данные изменились (на вскидку не скажу какое событие, плюс возможно лучше ловить то, что привязано к DataSource).
---
ПроГLамеры объединяйтесь..
Re[2]: AutoResizing WinForm без скроллинга?
От:
Аноним
Дата:
26.02.13 08:59
Оценка:
Здравствуйте, Sinatr, Вы писали:
S>Здравствуйте, Аноним, Вы писали:
А>>Вопрос: как автоматически изменить размеры формы так, чтобы области прокрутки исчезли?
S>Попробовать в FormShown сделать ClientRect = dataGridView.Size ? И делать то же каждый раз когда данные изменились (на вскидку не скажу какое событие, плюс возможно лучше ловить то, что привязано к DataSource).
Не могу понять, как вычислить в гриде область, занимаемую данными?
В Shown смотрел — там у грида исходные размеры.
Не очень ясно, в какой момент они меняются
Здравствуйте, Аноним, Вы писали:
А>Не могу понять, как вычислить в гриде область, занимаемую данными?
Если грид как-то ресайзится, чтобы поместить в себя все данные (судя по ТЗ), значит учиться вычислять размеры грида не нужно. Вопрос, как именно он ресайзится? Т.к. в идеале нужно ресайзить форму сразу после этого. Но в принципе всегда можно использовать грязные трюки (по типу poll timer, даж не знаю как это по русски, который может все время проверять не соотвествие между размерами грида и формой и фиксить как надо).
---
ПроГLамеры объединяйтесь..
Re[4]: AutoResizing WinForm без скроллинга?
От:
Аноним
Дата:
26.02.13 10:40
Оценка:
Здравствуйте, Sinatr, Вы писали:
S>Здравствуйте, Аноним, Вы писали:
А>>Не могу понять, как вычислить в гриде область, занимаемую данными?
S>Если грид как-то ресайзится, чтобы поместить в себя все данные (судя по ТЗ), значит учиться вычислять размеры грида не нужно. Вопрос, как именно он ресайзится? Т.к. в идеале нужно ресайзить форму сразу после этого. Но в принципе всегда можно использовать грязные трюки (по типу poll timer, даж не знаю как это по русски, который может все время проверять не соотвествие между размерами грида и формой и фиксить как надо).
Случайно получилось:
Форма
AutoSize = true;
FormBorderStyle = Sizable
Грид:
AutoSize = true;
ScrollBars = None;
При этом в гриде снизу и справа две темные полосы, как будто от скролбаров, но это не они.
А так видно даже как форма сама ресайзится при показе.
Здравствуйте, Аноним, Вы писали:
А>При этом в гриде снизу и справа две темные полосы, как будто от скролбаров, но это не они.
Перестал понимать что нужно. Может всего-навсего убрать скролбары с формы this.AutoScroll = false?
---
ПроГLамеры объединяйтесь..
Re[6]: AutoResizing WinForm без скроллинга?
От:
Аноним
Дата:
26.02.13 11:23
Оценка:
Здравствуйте, Sinatr, Вы писали:
S>Здравствуйте, Аноним, Вы писали:
А>>При этом в гриде снизу и справа две темные полосы, как будто от скролбаров, но это не они.
S>Перестал понимать что нужно.
Так у меня все получилось с теми настройками, спасибо S>Может всего-навсего убрать скролбары с формы this.AutoScroll = false?
AutoScroll у меня и так false (похоже это именно он и вытягивает форму в нужный размер), но полосы все равно видны.
Я их затенил через DataGridView.BackGroundColor, так что все вроде хорошо.