🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: alt.pl.comp.lang.csharp
9 messages
9 total messages Started by qaz Tue, 06 Jul 2010 12:16
textbox - refresh [zielony]
#21664
Author: qaz
Date: Tue, 06 Jul 2010 12:16
11 lines
1421 bytes
Jaki jest mechanizm aktualizowania/wyswietlania tekstu w textBox ?
Program w pętli obsluguje (konwertuje) tabele bazy - aby wiedziec co sie 
dzieje daje:
...
this.textBoxAkt.Text = moj_wskaznik_zaaw;
this.textBoxAkt.Refresh();  // i bez tej linii zobacze tylko ostatni 
wskaznik na koniec konwersji
...

mozna jakos "nakazac" odswiezanie kontrolek po zmianie zawartosci ?
qaz
Re: textbox - refresh [zielony]
#21665
Author: Marcin Miga
Date: Tue, 06 Jul 2010 12:22
16 lines
1856 bytes
On 6 Lip, 14:16, "qaz" <qazvox...@wp.pl> wrote:
> Jaki jest mechanizm aktualizowania/wyswietlania tekstu w textBox ?
> Program w pętli obsluguje (konwertuje) tabele bazy - aby wiedziec co sie
> dzieje daje:
> ...
> this.textBoxAkt.Text = moj_wskaznik_zaaw;
> this.textBoxAkt.Refresh();  // i bez tej linii zobacze tylko ostatni
> wskaznik na koniec konwersji
> ...
>
> mozna jakos "nakazac" odswiezanie kontrolek po zmianie zawartosci ?
> qaz

Właśnie nakazałeś - .Refreshem :)

pozdrawiaMM
Re: textbox - refresh [zielony]
#21666
Author: Wiktor Zychla
Date: Wed, 07 Jul 2010 07:27
13 lines
1515 bytes
> this.textBoxAkt.Text = moj_wskaznik_zaaw;
> this.textBoxAkt.Refresh();  // i bez tej linii zobacze tylko ostatni 
> wskaznik na koniec konwersji
> ...
>
> mozna jakos "nakazac" odswiezanie kontrolek po zmianie zawartosci ?
> qaz

spróbuj

Application.DoEvents();

Wiktor Zychla 
Re: textbox - refresh [zielony]
#21667
Author: Łukasz 'Maly' Ostrowski
Date: Wed, 07 Jul 2010 08:14
23 lines
1564 bytes
On Wed, 7 Jul 2010 09:27:58 +0200, Wiktor Zychla wrote:
>> this.textBoxAkt.Text = moj_wskaznik_zaaw;
>> this.textBoxAkt.Refresh();  // i bez tej linii zobacze tylko ostatni 
>> wskaznik na koniec konwersji
>> ...
>>
>> mozna jakos "nakazac" odswiezanie kontrolek po zmianie zawartosci ?
> 
> spróbuj
> Application.DoEvents();

Średni pomysł, lepiej wydelegować long-running-operation
do osobego wątku. Blokowanie wątku UI i "symulowanie jego
ożywania" DoEvents() może się skończyć różnymi dziwnymi 
scenariuszami ;-)

Dla OP, zainteresuj się:
1. BackgroundWorker lub Thread, oraz
2. Control.InvokeRequired/Invoke

-- 
Pozdrawiam,
Łukasz 'Maly' Ostrowski.      http://l3v.pl/
Re: textbox - refresh [zielony]
#21668
Author: Wiktor Zychla
Date: Fri, 09 Jul 2010 07:36
15 lines
1861 bytes
> Średni pomysł, lepiej wydelegować long-running-operation
> do osobego wątku. Blokowanie wątku UI i "symulowanie jego
> ożywania" DoEvents() może się skończyć różnymi dziwnymi
> scenariuszami ;-)

podobnie - różnymi dziwnymi scenariuszami może skończyć się odpalanie 
dodatkowych wątków.
po prostu zawsze trzeba wiedzieć co się robi.

o rozwiązaniu przynajmniej niektórych trudności z DoEvents napisałem kilka 
lat temu artykuł:

http://www.ii.uni.wroc.pl/~wzychla/lengthy.html

Wiktor Zychla 
Re: textbox - refresh [zielony]
#21669
Author: Łukasz 'Maly' Ostrowski
Date: Fri, 09 Jul 2010 08:05
32 lines
2217 bytes
On Fri, 9 Jul 2010 09:36:46 +0200, Wiktor Zychla wrote:
> podobnie - różnymi dziwnymi scenariuszami może skończyć się odpalanie 
> dodatkowych wątków.

Z reguły jak ktoś nie wie co czyni to kończy się ,,tylko"
Cross Thread UI Operation Exception ;-).

> po prostu zawsze trzeba wiedzieć co się robi.

Zgoda. Wystarczy poznać model UI w .NET i synchronization primitives
najprostsze, żadnych wielkich filozofii a poprawność jest stanowczo
większa niż DoEvents() - tymbardziej że do elementarnych scenariuszy
wystarczy Invoke/lock/wait-handle/semafory/mutexy ;-).

> o rozwiązaniu przynajmniej niektórych trudności z DoEvents napisałem kilka 
> lat temu artykuł:
> 
> http://www.ii.uni.wroc.pl/~wzychla/lengthy.html

Rozwiązania problemu za pomocą hacków są podejrzane IMO ;-).

Z luźnych uwag jakie mam po przejrzeniu artykułu:
1. "Desktop applications are usually single-threaded." - na chwile
   obecną to jest mało prawdziwe, zastąpiłbym usually -> rarely ;-).
   No chyba że mówimy o calc/notepad/hello world.
2. if (mb.GetCustomAttributes(typeof(Uninterruptible), true).Length > 0),
   stanowczo bardziej spójnie.
3. *uninterruptible* ;-).

-- 
Pozdrawiam,
Łukasz 'Maly' Ostrowski.      http://l3v.pl/
Re: textbox - refresh [zielony]
#21670
Author: Wiktor Zychla
Date: Fri, 09 Jul 2010 09:13
6 lines
1459 bytes
> Z luźnych uwag jakie mam po przejrzeniu artykułu:

artykuł ma jakieś 6 lat.

pozdrawiam uprzejmie,
Wiktor Zychla 
Re: textbox - refresh [zielony]
#21671
Author: Łukasz 'Maly' Ostrowski
Date: Fri, 09 Jul 2010 09:57
18 lines
1561 bytes
On Fri, 9 Jul 2010 11:13:18 +0200, Wiktor Zychla wrote:

>> Z luźnych uwag jakie mam po przejrzeniu artykułu:
> 
> artykuł ma jakieś 6 lat.

Dlatego otagowałem uwagi jako luźne ;-).

Abstrahując, przejrzałem Kolegi program zajęć na 
2009/2010, i powiem szczerze że bardzo mi się ten 
model podoba, cały semestr 2-gi ze  szczegółowym opisem
iteracji/refactor'ów brzmi dydaktycznie rewelacyjnie.

p.s. Studenci sobie z tym radzą? ;-).

-- 
Pozdrawiam,
Łukasz 'Maly' Ostrowski.      http://l3v.pl/
Re: textbox - refresh [zielony]
#21672
Author: Wiktor Zychla
Date: Fri, 09 Jul 2010 11:04
6 lines
1510 bytes
> p.s. Studenci sobie z tym radzą? ;-).

radzą. i, jak odnoszę wrażenie, też im się to podoba :)

pozdrawiam
Wiktor Zychla 
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads