Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Как отловить изменение ширины столбца MSFlexGrid


Автор: Domino 12.4.2005, 15:49
Как отловить изменение размера столбца таблицы MSFlexGrid (какое событие генерируется, когда пользователь изменяет ширину столбца таблицы)?

Автор: Naghual 12.4.2005, 16:16
А никакое не генерируется.
Нету у него такого

Автор: Domino 12.4.2005, 16:33
Да, стандартными средствами VB у меня не вышло. smile
Но, может, есть какой нибудь другой, "нестандартный" способ?

Автор: Gannibal 13.4.2005, 01:36
я думал что можно ну вот так типо отловить размер можно нет?

имяФлехГрида.ColWidth(номер какои) = 1000

вот так вот нет?

Добавлено @ 01:39
Ширина, высота строк и колонок

Ширина колонок устанавливается свойством ColWidth. Единственный параметр index указывает индекс колонки, ширину которой получаем или устанавливаем. Свойство имеет тип Long и устанавливается в твипах.

MsgBox MSFlexGrid.ColWidth (2)
MSFlexGrid.ColWidth (2) = 1500

Высота колонок определяется свойством RowHeight, также имеющим тип Long и измеряющимся в твипах. В качестве параметра задаётся индекс строки.

MsgBox MSFlexGrid.RowHeight (34)
MSFlexGrid.RowHeight (34) = 200

Также можно установить минимальную высоту строк. Это делается с помощью свойства RowHeightMin. Пользователь и сам может изменять высоту строк и ширину колонок. Но для этого нужно установить соответствующее значение свойства AllowUserResizing. Это свойство имеет тип AllowUserResizeSettings и может принимать значение одной из следующих констант:

Константа Значение Описание
flexResizeNone 0 Пользователь не может изменять ни высоту строк, ни ширину колонок. Это значение устанавливается по умолчанию.
flexResizeColumns 1 Пользователь может изменять только ширину колонок.
flexResizeRows 2 Пользователь может изменять только высоту строк.
flexResizeBoth 3 Пользователь может изменять и высоту строк, и ширину колонок.

Автор: Domino 13.4.2005, 07:29
M.E.G.U.S, спасибо, но это всё не то. smile
Мне нужно узнать, что пользователь в какой-то момент изменил ширину столбца.
Дело в том, что мышиные события (Click, MouseDown, MouseUp и пр.) при изменении размера не генерируются.

Автор: valex13 13.4.2005, 07:44
Напиши свой FlexGrid smile

Автор: Naghual 13.4.2005, 10:42
Поставь хук на ФлексГрид!

Автор: Domino 13.4.2005, 11:53
Цитата(Naghual @ 13.4.2005, 11:42)
Поставь хук на ФлексГрид!

smile
С хуками никогда не работал. smile

Автор: Exception 13.4.2005, 12:19
С хуком маяться не советую - потом сам запутаешься в своем коде.
А DataGrid юзать не выйдет? В нем есть событие ColResize smile

Автор: Domino 14.4.2005, 08:39
Цитата(Run @ 13.4.2005, 13:19)
А DataGrid юзать не выйдет? В нем есть событие ColResize  smile

У DataGrid методы отличны от FlexGrid. Мне ради добавления одной фишки придется перелопатить весь готовый код. smile
Run-time error, спасибо за совет. Я посмотрю, насколько сложно его осуществление.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)