List View - редактирование подэлементов

Тема в разделе "WASM.BEGINNERS", создана пользователем Spectrum, 9 дек 2005.

  1. Spectrum

    Spectrum Member

    Публикаций:
    0
    Регистрация:
    8 дек 2005
    Сообщения:
    43
    Адрес:
    Одесса
    Привет.

    Каким образом можно сделать подэлементы list view (subitems) редактируемыми?

    Если не затруднит.
     
  2. Sl4v4

    Sl4v4 New Member

    Публикаций:
    0
    Регистрация:
    18 окт 2005
    Сообщения:
    69
    ListView - это простой список. Откуда там subitems взялись? Или я что-то недопонял?

    Если имелся ввиду TreeView, то вот пример
     
  3. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Sl4v4

    Итем - это первая слева колонка в режиме report. Субитемы - остальные колонки
     
  4. Sl4v4

    Sl4v4 New Member

    Публикаций:
    0
    Регистрация:
    18 окт 2005
    Сообщения:
    69
    cresta

    Понятно, спасибо.

    Spectrum

    Кроме как динамически создавать Edit на месте нужной ячейки, других вариантов невижу.
     
  5. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Установи стиль LVS_EDITLABELS

    LVS_EDITLABELS

    Item text can be edited in place. The parent window must process the LVN_ENDLABELEDIT notification message.
     
  6. Spectrum

    Spectrum Member

    Публикаций:
    0
    Регистрация:
    8 дек 2005
    Сообщения:
    43
    Адрес:
    Одесса
    to Sl4v4 (динамически создавать Edit)

    Да, такая идея сразу возникла, но это слишком громоздко.



    to cresta (LVS_EDITLABELS)

    I need to edit the subItems, no Items.



    В общем List View понятно. Это только для файлов и подобного.

    Моя цель - таблица, которую использует Excel. Нужно редактировать внутренние ячейки.

    Крайние ячейки должны всегда оставаться в поле видимости.

    Excel может, значит возможно? С помощью dll, конечно, а не с нуля:)
     
  7. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    У Экселя разве ListView??

    Вообще, для этих целей используют Grid control. Ищи реализации, вроде даже в разделе исходников есть. В RadAsm'e есть такой контрол (с сорцами).
     
  8. Spectrum

    Spectrum Member

    Публикаций:
    0
    Регистрация:
    8 дек 2005
    Сообщения:
    43
    Адрес:
    Одесса
    Я не говорил, что в Excel - List View.

    Я сказал "Моя цель - таблица, которую использует Excel". Видимо неточно - "вроде как в Excel".

    В Buildere С++ есть такой StringGrid. А вот в справке WinAPI я что-то проглядел подобное и взял List View за неимением лучшего.
     
  9. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    А в Common Controls и нет его. Все пишут свои реализации.
     
  10. Spectrum

    Spectrum Member

    Публикаций:
    0
    Регистрация:
    8 дек 2005
    Сообщения:
    43
    Адрес:
    Одесса
    IceStudent

    А в Common Controls и нет его. Все пишут свои реализации

    Вот уж не думал! Ладно, либо поищу что-то бесплатное:) Либо буду писать свое специфическое. А то иногда кажется проще сделать своё, чем разбираться в чужом. А может это не "иногда", а система? :)



    К Common Control'ам относится вообще все контролы, что устанавливаются с Windows? А библиотеки для Excel в MS Office не документированы?
     
  11. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Может в каком системном OCX есть ещё GridControl..
     
  12. Spectrum

    Spectrum Member

    Публикаций:
    0
    Регистрация:
    8 дек 2005
    Сообщения:
    43
    Адрес:
    Одесса
    ОК, в общем разобрался в вопросе. Спасибо всем за советы.
     
  13. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Spectrum



    Проще простого. Зато проблемы возникнут при горизонтальном скролле. Я делал уже такой контрол: дисаблил header (чтоб пользователь не мог его ресайзить) для предотвращения горизонтального скролла. А edit динамически двигать по таблице - минутное дело.



    Есть ещё в ListView стиль owner-drawn, через который можно совсем как Excel сделать L&F.