Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Edycja dowolnej komórki w Lisview
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004
Edycja dowolnej komórki w Lisview

Witam

Wie ktoś jak to zrobić albo ma jakiś sampelek

Chodzi o to że mam kilka pozycji w ListView i chcę edytować np. komórkę w wierszu pierwszym w kolumnie drugiej. Znalazłem kilka sampli na Necie ale za bardzo skomplikowane są (tzn. za dużo bajerów) a mi chodzi o zwykłą edycję komórki


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

10-08-2004 10:41
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
bisiek




Typ: neutral
Postów: 487
Zarejestrowany: Jul 2003

Dla wersji 6 sp4

me.ListView1.ListItems (1).ListSubItems (2).Text = "zmieniony tekst"

dla wersji 5 sp 2

me.ListView2.ListItems (1).SubItems(2) = "zmieniony tekst"


_____________________________________________
www.mob.abc.pl - moja strona o VB

10-08-2004 12:05
Pokaż profil bisiek  Wyślij email do bisiek   Odwiedź stronę bisiek       3380672
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Dzięki ale nie o to mi chodziło.

Ja nie chcę przypisywać tekstu tylko go edytować

Mam już w Subitems(1) wpisany tekst i po naciśnięciu go chcę żeby dało się go edytować


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

10-08-2004 12:13
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
bisiek




Typ: neutral
Postów: 487
Zarejestrowany: Jul 2003

Użyj czegoś takiego

row = 1
col = 2
t = Me.ListView1.ListItems(row).Top
For i = 1 To col
l = l + Me.ListView1.ColumnHeaders(i).Width
Next

Text1.Top = t + ListView1.top
Text1.Left = l + ListView1.left


zadziała jeżeli element będzie widoczny i bez przwijania.


_____________________________________________
www.mob.abc.pl - moja strona o VB

10-08-2004 12:26
Pokaż profil bisiek  Wyślij email do bisiek   Odwiedź stronę bisiek       3380672
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Chyba nadal się nie rozumiemy

Przykład

      Kolumna 1  Kolumna2
Row 1  a          c
Row 2  b          d

teraz naciskam na d i pokazuje się okno edycji (ten czarny kwadracik a w środku zaznaczony tekst)

Jeżeli chodzi o kolumnę pierwszą to wiadomo, że nie ma problemu bo wystarczy ustawić LabelEdit na vbAutomatic

Pozdrawiam


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

10-08-2004 12:32
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
bisiek




Typ: neutral
Postów: 487
Zarejestrowany: Jul 2003

No, wiem, więc ustawia tekstbox na dowolną kolumnę. Musisz tylko dopisać procedurę zapisu i odczytu do/z komórki. Podaję jak znaleść pozycję komórki.

Tekst odczytasz i zapiszesz przez

me.ListView1.ListItems (1).ListSubItems (2).Text


_____________________________________________
www.mob.abc.pl - moja strona o VB

10-08-2004 12:39
Pokaż profil bisiek  Wyślij email do bisiek   Odwiedź stronę bisiek       3380672
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Fajnie by było gdyby moja kontrolka ListView miała takową własciwość jak

ListSubItems (2).Text


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

10-08-2004 12:53
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
bisiek




Typ: neutral
Postów: 487
Zarejestrowany: Jul 2003

To znaczy, chodzi mi o to, że musisz użyć tekstboxa i jakoś zewnętrznie wywoływać edycję, albo użyj innej kontrolki (flexgrid itp.)


_____________________________________________
www.mob.abc.pl - moja strona o VB

10-08-2004 12:54
Pokaż profil bisiek  Wyślij email do bisiek   Odwiedź stronę bisiek       3380672
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Dobra dobra wiem, że Subitems(2) zwraca tekst ale coś to nie działa co podałeś


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

10-08-2004 12:55
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
bisiek




Typ: neutral
Postów: 487
Zarejestrowany: Jul 2003

To w takim razie masz strszą wersję i może się wogule nie dać określić pozycji. Użyj SubItems(numer).text jeżeli nie będzie żadnych właściwości to jest tylko text.


_____________________________________________
www.mob.abc.pl - moja strona o VB

10-08-2004 12:55
Pokaż profil bisiek  Wyślij email do bisiek   Odwiedź stronę bisiek       3380672
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

No właśnie pytam o samo wywołanie edycji - odczytanie zawartości komórki czy zapis ma tutaj najmniejsze znaczenie, tym bardziej, że wiem jak to zrobić.


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

10-08-2004 12:56
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
bisiek




Typ: neutral
Postów: 487
Zarejestrowany: Jul 2003

Sprawdziłem kontrolkę i widzę że

a) napisać własne metody przewijania i potem przy mouseup sprawdzać pozycję myszy z pozyjami elementów

b) użyć innej kontrolki

c) użyć jakiejś metody subclassingu itp.

d) czegoś w tej kontrolce nie znalazłem

[Post edytowany dnia 10-08-2004 13:11 przez bisiek]


_____________________________________________
www.mob.abc.pl - moja strona o VB

10-08-2004 13:01
Pokaż profil bisiek  Wyślij email do bisiek   Odwiedź stronę bisiek       3380672
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Z Tego co widziałem w kilku samplach to na API się da tylko, że zbyt pokręcone te sample bo oprócz samej edycji mają jeszcze dużo bajerow co strasznie komplikuje interpretację. Spróbuję coś z tych sampli wyciągnąć. Jak się uda to napiszę.

P.S. A czy kotrolka ListView (SP4) umożliwia edycję dowolnej kolumny bez wykorzystywania API ?

Ogólnie chodzi o to że ListView ma działać jak np. FlexGrid

Pozdrawiam


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

10-08-2004 14:09
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
bisiek




Typ: neutral
Postów: 487
Zarejestrowany: Jul 2003

ListView vb6 sp4 nie możliwia edycji tych komórek bezpośrednio.

To dlaczego nie użyjesz flexgrid?


_____________________________________________
www.mob.abc.pl - moja strona o VB

10-08-2004 14:16
Pokaż profil bisiek  Wyślij email do bisiek   Odwiedź stronę bisiek       3380672
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Dlatego, że FlexGrid pewnie nie umożliwia dodawanie do pozycji checkboxów

Ponadtwo wykorzystując manifest - nie uzyskam efektu XP Style dla tej kontrolki


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

10-08-2004 14:32
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
Wszystkich odpowiedzi: 14 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1