Всем привет.
Возникла такая проблема. Пытаюсь я нарисовать на базе ListView нечто похожее на окошко Properties в студии.
Для этого в ListView при движении по строчкам динамически создаю TextBox и рисую его в рамках текущей ячейки.
А проблема следующая — при скроллинге мой TextBox остается на "своем" месте и я никак не могу определить какое событие генерируется при скроллинге в ListView, если вообще какое-нибудь генерируется.
И еще вопрос — можно ли из ProperrtyGrid сделать что-нибудь похожее на StringGrid?
Здравствуйте vagner, Вы писали:
V>Всем привет. V>Возникла такая проблема. Пытаюсь я нарисовать на базе ListView нечто похожее на окошко Properties в студии. V>Для этого в ListView при движении по строчкам динамически создаю TextBox и рисую его в рамках текущей ячейки. V>А проблема следующая — при скроллинге мой TextBox остается на "своем" месте и я никак не могу определить какое событие генерируется при скроллинге в ListView, если вообще какое-нибудь генерируется. V>И еще вопрос — можно ли из ProperrtyGrid сделать что-нибудь похожее на StringGrid?
Необходимо создать клас наследуемый от CListCtrl
В нем обработать WM_HSCROLL
В этом обработчике вызвать обработчик базового класа и послать паренту (PostMessage)какой то WM_USER мессаг
В паренте в обработчике на WM_USER переместить TextBox
:user:
Здравствуйте vagner, Вы писали:
V>Всем привет. V>Возникла такая проблема. Пытаюсь я нарисовать на базе ListView нечто похожее на окошко Properties в студии. V>Для этого в ListView при движении по строчкам динамически создаю TextBox и рисую его в рамках текущей ячейки. V>А проблема следующая — при скроллинге мой TextBox остается на "своем" месте и я никак не могу определить какое событие генерируется при скроллинге в ListView, если вообще какое-нибудь генерируется. V>И еще вопрос — можно ли из ProperrtyGrid сделать что-нибудь похожее на StringGrid?
А чем тебя DataGrid не устраивает?
PropertyGrid — это очень специализированная вещь, он привязывается к переменной, и через рефлексию вытягивает из нее все свойства и их значения, а на большее он не способен.
Здравствуйте Кирпа В.А., Вы писали:
КВ>Необходимо создать клас наследуемый от CListCtrl КВ>В нем обработать WM_HSCROLL
КВ>В этом обработчике вызвать обработчик базового класа и послать паренту (PostMessage)какой то WM_USER мессаг КВ>В паренте в обработчике на WM_USER переместить TextBox
Прошу прощения, я не указал среду (хотя форум, вроде, посвящен NET или я ошибся?). Речь идет о VS.NET, C#.
Честно говоря, не хотелось бы обрабатывать WM_HSCROLL так как я не знаю на сколько сместит ListView картинку, он двигает ее на величину кратную высоте строки, а ее (высоту строки) я не знаю, да и не знаю на сколько строк он сместит картинку. Мне хотелось бы получить от самого ListView сообщение типа "я тут немного перерисовался", вот тогда бы я и перерисвал свой TextBox.
Здравствуйте Андрей, Вы писали:
А>А чем тебя DataGrid не устраивает?
В принципе данные у меня будут из БД, но мне необходимо довольно-таки специфическое поведение грида (кстати, очень похожее на поведение PropertyGrid). Поэтому я решил написать некоторое подобие StringGrid с нужным мне поведением, а уж потом наполнить его данными.
А>PropertyGrid — это очень специализированная вещь, он привязывается к переменной, и через рефлексию вытягивает из нее все свойства и их значения, а на большее он не способен.
Но ведь, наверное, можно подсунуть ему переменную с кучкой свойств. А если он потом даст подменить обрабтчики нажатий на свои кнопочки (те которые а-ля ComboBox и Lookup), то вообще было бы замечательно. Может кинешь пару направляющих — куда рыть, а то зашиваюсь совсем: босс подгоняет, а я столько времени угробил на ListView.
Здравствуйте vagner, Вы писали:
V>Но ведь, наверное, можно подсунуть ему переменную с кучкой свойств. А если он потом даст подменить обрабтчики нажатий на свои кнопочки (те которые а-ля ComboBox и Lookup), то вообще было бы замечательно. Может кинешь пару направляющих — куда рыть, а то зашиваюсь совсем: босс подгоняет, а я столько времени угробил на ListView.
Переменную-то ему подсунуть можно, и даже нужно , но вот насчет подмены конкретно этих событий — сомневаюсь. Впрочем, читай описание PropertyGrid и пробуй — может, получится. Я сам не пробовал, так что помочь не могу.