Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 19 lut 2025, o 09:52


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
Autor Wiadomość
PostNapisane: 3 lut 2016, o 20:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2011
Posty: 266
Lokalizacja: Szczecin
Pomógł: 9

Witam,

W C# napisałem bardzo prosty terminal, odbiera komendy z RS232 i wyświetla je w komponencie ListBox1.

Problem mój polega na tym, że jak nadleci przykładowo 100 komenda to muszę przewijać pasek od ListBox abym zobaczył jaka komenda przyleciała. Chciałbym zrobić to w taki sposób aby pasek do przewijania ListBox przesuwał się w drugą stronę. Czyli jak bym chciał sprawdzić starsze komendy, to dopiero bym musiał przesunąć pasek.

Szukam we właściwościach komponentu ListBox i nie moge nic znaleźć :/

_________________
www.gryfsmart.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 lut 2016, o 23:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2012
Posty: 471
Lokalizacja: ZGY/ZS
Pomógł: 30

Składnia: [ Pobierz ] [ Ukryj ]
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę

_________________
eDiyCraft.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lut 2016, o 00:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2011
Posty: 266
Lokalizacja: Szczecin
Pomógł: 9

Czyli ta linijkę, którą napisałeś mam umieścić np w timerze?

Nie wiem czy jasno opisałem o co mi chodzi :)

Obrazek

Chodzi mi o to, że muszę ręcznie przesuwać pasek abym odczytał najnowsza komendę, która przyszła na RS232.

...albo od razu jak dodam nową linie, mam od razu odpalić komendę? tego nie próbowałem, zaraz wypróbuje.

_________________
www.gryfsmart.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lut 2016, o 07:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

Ja bym nie zajmował się paskiem tylko sposobem dodawania danych do komponentu.

dane_tmp = dane_usart + dane_list
dane_list = dane_tmp

Oczywiście jest to łopatologiczny przykład ale na tej zasadzie nowe dane zawsze będą na gorze.
Chodziło mi o pokazanie jak dodawać dane do twojej listy aby nie zajmować się paskiem.

Pasek w tym momencie przewiniesz jak będziesz chciał zobaczyć stare dane.



Wysłane z mojego Tab2A7-10F przy użyciu Tapatalka

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lut 2016, o 07:20 
Offline
Użytkownik

Dołączył(a): 04 kwi 2014
Posty: 133
Pomógł: 4

majster napisał(a):
Oczywiście jest to łopatologiczny przykład ale na tej zasadzie nowe dane zawsze będą na gorze.


No można i tak, ale to taki trochę "inny terminal" niż wszystkie:) Zazwyczaj nowe, przechwycone dane wyświetlane są "na dole".

savian86 napisał(a):
Składnia: [ Pobierz ] [ Ukryj ]
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


To chyba najlepsze rozwiązanie w Twoim wypadku, po prostu gdy terminal coś odbierze dorzuć to na końcu swojej metody odbioru.


btw. dlaczego akurat listbox? Jest taka kontrolka jak RichTextBox, która ma w sobie już gotową metodę-ScrollToEnd ;)
Dodatkowo można w niej kolorować czcionkę każdego znaku na inny kolor(kiedyś tego potrzebowałem przy budowaniu terminala, żeby łatwiej mi było znaleźć błędy).
A idąc jeszcze dalej, to możesz do niej wpisywać komendy i wysyłać.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lut 2016, o 08:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 maja 2012
Posty: 471
Lokalizacja: ZGY/ZS
Pomógł: 30

Tak, wykonujesz to SelecteIndex po tym jak dodasz nowy element do listy, nie trzeba powtarzać tego w timerze.

_________________
eDiyCraft.blogspot.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lut 2016, o 14:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2011
Posty: 266
Lokalizacja: Szczecin
Pomógł: 9

bloniak91 napisał(a):
btw. dlaczego akurat listbox? Jest taka kontrolka jak RichTextBox, która ma w sobie już gotową metodę-ScrollToEnd ;)


Nie wiem :) Zacząłem od list box :) Własnie brakowało mi takiej metody w list box:) Chyba też łatwiej będzie się kolorowało -RichTextBox :-) W zależności od tego jakie komendy przyjdą to chwiałbym im nadać różne kolory ale to już temat na osobny post ;)

Dzięki za pomoc! :)

_________________
www.gryfsmart.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lut 2016, o 19:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 maja 2014
Posty: 1089
Pomógł: 34

Jeśli używasz multiline to możesz użyć metody setselected i wtedy rezultat ten sam jak podany przez kolegę bloniak :)

Sent from my GT-I9506 using Tapatalk

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 10 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO