Forum Coders' city Strona Gwna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UytkownicyUytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj si, by sprawdzi wiadomociZaloguj si, by sprawdzi wiadomoci   ZalogujZaloguj 

Potrzebuj szybkiej odpowiedzi na moje pytanie... Zasady

[VB.NET 2010] ListView.ScrollBar - czy jest widoczny



 
Odpowiedz do tematu    Forum Coders' city Strona Gwna -> Visual Studio: C#, VB, VC++, …
Zobacz poprzedni temat :: Zobacz nastpny temat  
Autor Wiadomo
bogdan



Doczy: 06 Wrz 2005
Posty: 172

PostWysany: Nie Gru 29, 2019 1:13 pm  OP    Temat postu: [VB.NET 2010] ListView.ScrollBar - czy jest widoczny Odpowiedz z cytatem Pisownia

Witam
Jak mo?na sprawdzi? (programowo) czy scrollbar (listView w widoku System.Windows.Forms.View.Details) jest widoczny ?
Ta informacja przyda?aby mi si? do zmodyfikowania szeroko?ci kolumn listy.
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo
samolot



Doczy: 26 Sty 2006
Posty: 8376
Skd: Toru?

PostWysany: Pon Gru 30, 2019 11:44 am      Temat postu: Odpowiedz z cytatem Pisownia

1. Ustawi?em dla ListView w?a?ciwo?? Scrolable na True
2. Po uruchomieniu programu mam pocz?tkowo pusty ListView. Wwczas ScrollBar w ListView nie jest pokazywany.
3. Doda?em ?wiczebnie na form? Button, ktrym mog? takim jak ni?ej kodem doda? do ListView nowy Item. Zmienna NrWiersza jest zadeklarowana na poziomie modu?u. :
Kod:
NrWiersza += 1
        With ListView1.Items.Add("Wiersz nr " & CStr(NrWiersza))
            .SubItems.Add("dane z p?tli")
        End With

4. Uruchamiam program i klikam Button, dodaj?c kolejne wiersze do ListView. Dodaj?c wiersze sprawdzam kiedy zachodzi zdarzenie ClientSizeChanged kontrolki ListView. W tym celu do tego zdarzenia doda?em taki kod:
Kod:
With ListBox1
            .Items.Add("")
            .Items.Add("Zmiana:")
            .Items.Add("ClientSize.width=" & ListView1.ClientSize.Width)
            .Items.Add("ClientSize.Height=" & ListView1.ClientSize.Height)
End With

Po ka?dym dodaniu nowego Itema do kontrolki ListView w ListBox pokazuje si? informacja o wymiarach jej w?a?ciwo?ci ClientSize. Dopki wysoko?? wszystkich dodanych wierszy nie przekracza wysoko?ci ClientSize.Height, to w?a?ciwo?? ClientSize.Width, si? nie zmienia. Natomiast je?li kolejny dodany wiersz ju? zaczyna chowa? si? pod doln? kraw?d? ListView , to kontrolka ListView powi?ksza swoj? "powierzchni? klienta" czyli ClientSize, a poniewa? ona sama nie zwi?ksza swych zewn?trznych wymiarw, to dodaje pionowego ScrollBara by u?ytkownik mg? nim przewija? wiersze.
Z powy?szego wynika, ?e opisane wy?ej zdarzenie mo?na wykorzysta? programowo do sprawdzania pokazywania si? paskw przewijania. Tu opisa?em pionowy, ale w podobny sposb mo?na zapewne kontrolowa? pasek przewijania poziomego.

_________________
Nie zadawaj bezcelowych pyta? / Windows 8.1 / Windows 10 / VB2008 / VB 2010 / VB 2012 / Pisz poprawnie
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo Wylij email
bogdan



Doczy: 06 Wrz 2005
Posty: 172

PostWysany: Pon Gru 30, 2019 12:18 pm  OP    Temat postu: Odpowiedz z cytatem Pisownia

Niezupe?nie o to chodzi, ale dzi?kuj? za odpowied?.
Szukam raczej jakiej? w?asno?ci (flagi) kontrolki, ktra informuje o wy?wietlaniu, b?d? nie paska przewijania w ListView.
Sposb podany przez Ciebie jest dobry do celw testowych, ale nie nadaje si? do u?ycia w aplikacji (kontrolka wczytuje porcj? danych i je wy?wietla. Nie wiemy z gry ile b?dzie wierszy, dodatkowo mo?liwe s? r?ne ustawienia czcionki oraz rozdzielczo?ci ekranu). Prbowa?em ju? wcze?niej napisa? funkcj? obliczaj?c? ilo?? wierszy listy mieszcz?c? si? w kontrolce (przy bie??cych ustawieniach kontrolki), ale nie uzyska?em dobrych rezultatw. Dodatkowo sprawa si? komplikuje je?eli pojawia si? poziomy pasek przewijania.
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo
samolot



Doczy: 26 Sty 2006
Posty: 8376
Skd: Toru?

PostWysany: Pon Gru 30, 2019 2:32 pm      Temat postu: Odpowiedz z cytatem Pisownia

Nie istnieje bezpo?rednio flaga, ale przecie? wszystko, co potrzeba do oblicze?, jest dost?pne. Rodzaj czcionki nie ma znaczenia, bo zawsze je?li kolumny dynamicznie zmieniaj? sw? szeroko??, to ma to (lub mo?e mie?) wp?yw na szeroko?? kolumn, a przez to na szeroko?? ClientSize.
Co do wysoko?ci kontrolki i jej pionowego ScrollBara, to, znaj?c "zewn?trzn?" wysoko?? ListView, mo?na ?atwo obliczy?, przy jakiej ilo?ci wierszy pojawia si? pionowy pasek przewijania i jak to si? ma do momentu pokazywania paska poziomego. Wszystko zale?y od tego, co dok?adnie chcesz osi?gn??. Je?li "wskakuj?cy" pasek pionowy nagle zaczyna przys?ania skrajny prawy wiersz, to mo?na w tym momencie wyregulowa?, czy w jaki? sposb dostosowa? szeroko?ci kolumn, by je zw?zi?, albo poszerzy? zewn?trzn? szeroko?? ListView.

W DataGridView, ktr? w miar? dobrze pozna?em, jest na przyk?ad mo?liwo?? ustawiania kolumnom rodzaju reakcji na zawarto?? komrek. Na przyk?ad mo?na zablokowa? zmian? szeroko?ci. A w takiej sytuacji u?ytkownik, naje?d?aj?c myszk? na zbyt w?sk? w stosunku do tre?ci komrk?, zobaczy ToolTip pokazuj?cy pe?n? tre?? komrki. Pewnie to samo mo?na wykorzysta? w ListView.

Cytat:
Nie wiemy z gry ile b?dzie wierszy
To przecie? mo?na policzy? w mgnieniu oka zaraz po wczytaniu.
Cytat:
Dodatkowo sprawa si? komplikuje je?eli pojawia si? poziomy pasek przewijania
Wg mnie przy odpowiednio du?ej porcji testw i cierpliwo?ci prawie wszystko da si? zrobi?.
_________________
Nie zadawaj bezcelowych pyta? / Windows 8.1 / Windows 10 / VB2008 / VB 2010 / VB 2012 / Pisz poprawnie
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo Wylij email
Wywietl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Gwna -> Visual Studio: C#, VB, VC++, … Wszystkie czasy w strefie CET (Europa)

Strona 1 z 1

 
Skocz do:  
Moesz pisa nowe tematy
Moesz odpowiada w tematach
Nie moesz zmienia swoich postw
Nie moesz usuwa swoich postw
Nie moesz gosowa w ankietach
Moesz dodawa zaczniki na tym forum
Moesz pobiera pliki z tego forum




Debug: strone wygenerowano w 0.22307 sekund, zapytan = 11
contact

| Darmowe programy i porady Jelcyna | Tansze zakupy w Helionie | MS Office Blog |