🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: alt.pl.comp.lang.csharp
Article #22421

Re: ListBox przewija się do góry przy zmianie zawartości.

#22421
From: Netx
Date: Sun, 12 Aug 2012 20:41
49 lines
3064 bytes
W dniu 2012-08-12 21:28, Łukasz 'Maly' Ostrowski pisze:
> On Sun, 12 Aug 2012 19:37:09 +0200, Netx wrote:
>> <snip>  jednak za każdym razem gdy wpisuję/aktualizuję
>> "tytuł" nowej pozycji, lista jest przewijana do góry po instrukcji:
>> 	lb.Items[pos] = nrScreen.ToString() + ". " + newName;
>> Czy istnieje możliwość aby przy wykonywaniu powyższej linijki dla
>> pozycji niewidocznych, lista nie przewijała się na ekranie automatycznie
>> na samą górę?
>
> http://pastebin.com/RmcumkFT

Dziękuję za odpowiedź!
Jakiego C# używasz? Mój kompilator tego nie rozumiał:
	new Thread(() => button2_Click(sender, e)).Start();
Mam Microsoft Visual C# 2010 (Express) i zrobiłem lekką modyfikację - 
podaję niżej. Jeśli masz nowsze C# to nie wiem czy mogę się przesiąść 
ponieważ program być może chciałbym udostępnić za darmo a więc musi być 
możliwość łatwego uruchomienia przez użytkowników (nie wiem czy nowsze 
środowisko uruchomieniowe C# jest dostępne dla wszystkich i darmowe).

Jeśli dobrze użyłem tego narzędzia "pastebin.com" to tu jest kod:
http://pastebin.com/0FAgJNxP

Naciskam "button 1"
  program wypełnia ListBox OK
Przewijam listę myszą na ekranie np. na sam koniec
Naciskam "button 2"
  program zmienia jedną pozycję (OK) ale jednocześnie przewija mi listę 
na samą górę (tego chcę uniknąć).

Generalnie chcę aby użytkownik mógł sobie przeglądać ten ListBox zanim 
jeszcze będzie on do końca wypełniony danymi (które się wolno ściągają 
ze wzmacniacza przez sieć).

> Zawsze się możesz posrednio zbindować do kolekcji za
> pomocą DataSource, zmieniać kolekcję i tylko wymuszać
> odrysowanie Refresh'em.

Dzięki za naprowadzenie. Ewentualnie spróbuję ten metody.

>> Nie wiem czy to ma znaczenie ale program ma kilka wątków i dodałem
>> linijkę dla uproszczenia programowania:
>> 	CheckForIllegalCrossThreadCalls = false;
>
> To źle. Tak trudno jest zrobić Invoke zamiast polegać na "na chwilę
> obecną działa"?

Pozdrawiam,
Marek
Technical Details
Message-ID: <k094d5$1nj$1@inews.gazeta.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
References: <k08pk9$ebo$1@inews.gazeta.pl> <7rx079dw821n.1yql5mim1cbp.dlg@40tude.net>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: Netx <nospam@gazeta.pl>
Newsgroups: alt.pl.comp.lang.csharp
Subject: Re: ListBox przewija się do góry
 przy zmianie zawartości.
Date: Sun, 12 Aug 2012 22:41:07 +0200
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 49
Message-ID: <k094d5$1nj$1@inews.gazeta.pl>
References: <k08pk9$ebo$1@inews.gazeta.pl> <7rx079dw821n.1yql5mim1cbp.dlg@40tude.net>
NNTP-Posting-Host: 87-206-21-121.dynamic.chello.pl
Mime-Version: 1.0
X-Trace: inews.gazeta.pl 1344804069 1779 87.206.21.121 (12 Aug 2012 20:41:09 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Sun, 12 Aug 2012 20:41:09 +0000 (UTC)
X-User: gigabyte
In-Reply-To: <7rx079dw821n.1yql5mim1cbp.dlg@40tude.net>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20120428 Thunderbird/12.0.1
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit