Ricerca 
it-ITen-US
Register
Login
In-Vesti Dotnetwork
IN-VESTI DNW!!!
Sono finalmente arrivate le nuovissime T-Shirt di DotNetWork!!! Con soli 15,00 € ci sosterrai nelle spese di gestione della Community e ti invieremo a casa una splendida maglietta.
Se vuoi contribuire al mantenimento di DotNetWork.it Vai sulla pagina Iscrizioni
Effettua il pagamento usando IWBank
Click per andare alla pagina di Iscrizione
Oppure un Bonifico bancario (le coordinate sono sulla pagina Iscrizioni), inviaci una mail a support@dotnetwork.it indicandoci la tua taglia e l'indirizzo di spedizione.  Non appena verificata la ricezione del pagamento provvederemo a spedirti la tua T-Shirt.  Le magliette sono disponibili nelle taglie S-M-L-XL-XXL (in caso di esaurimento di una delle taglie, indica quella di "Backup"). Grazie per IN-VESTIRTI con NOI!!!
.:DotNetWork Founders:.
    Print     


DotNetWork Forums
Testo scorrevole
Last Post 22 Nov 2007 19:11 by Sabrina (DNW TEAM). 7 Replies.
Printer Friendly
Sort:
PrevPrev NextNext
You are not authorized to post a reply.
Author Messages

Posts:142

--
21 Nov 2007 16:50  
Vorrei aggiungere in una mia form un testo scorrevole.
In vb6 lo facevo con una label e un timer, speravo che NET mettesse a disposizione qualcosa, ma non trovo niente.
Riciclo la vecchia sub di vb6 ?

Posts:813

--
21 Nov 2007 18:02  
A quanto ricordo, e potrei anche sbagliarmi,
c'era la funzione per visualizzare un testo scorrevole in un pannello della statusbar se questo può aiutarti, credo ci sia una property sul pannello dove indicare marquee

per creare un testo scorrevole che non stia nella status bar credo ti possa bastare uno stringbuilder ed un thread separato con un thread sleep fra una lettera e l'altra...

puoi creare ad esempio una classe che eredita da label ed implementare la tua funzione oppure, come in questo esempio che si trova su codeproject puoi scrivere direttamente su un controllo o su una label...

http://www.codeproject.com/cs/miscctrl/csmarquee.asp

Se vuoi creare un controllo e ti va di condividerlo con noi poi, ci scrivi un bell'articolo e lo pubblichiamo ;)

saluti
Sabrina



Inviato da Gianni on 21/11/2007 17.50.46

Vorrei aggiungere in una mia form un testo scorrevole.
In vb6 lo facevo con una label e un timer, speravo che NET mettesse a disposizione qualcosa, ma non trovo niente.
Riciclo la vecchia sub di vb6 ?


Sabrina

Posts:813

--
21 Nov 2007 18:04  
p.s.

Con WPF tutto questo è già fatto, in VS 2008 hanno detto che troveremo una serie di strumenti per integrare porzioni di WPF nelle winforms per poter dare allegria ed animazione
ma per ora ci accontentiamo di saperlo ;)))

Sabrina

Inviato da Sabrina (DNW TEAM) on 21/11/2007 19.02.26

A quanto ricordo, e potrei anche sbagliarmi,
c'era la funzione per visualizzare un testo scorrevole in un pannello della statusbar se questo può aiutarti, credo ci sia una property sul pannello dove indicare marquee

per creare un testo scorrevole che non stia nella status bar credo ti possa bastare uno stringbuilder ed un thread separato con un thread sleep fra una lettera e l'altra...

puoi creare ad esempio una classe che eredita da label ed implementare la tua funzione oppure, come in questo esempio che si trova su codeproject puoi scrivere direttamente su un controllo o su una label...

http://www.codeproject.com/cs/miscctrl/csmarquee.asp

Se vuoi creare un controllo e ti va di condividerlo con noi poi, ci scrivi un bell'articolo e lo pubblichiamo ;)

saluti
Sabrina



Inviato da Gianni on 21/11/2007 17.50.46

Vorrei aggiungere in una mia form un testo scorrevole.
In vb6 lo facevo con una label e un timer, speravo che NET mettesse a disposizione qualcosa, ma non trovo niente.
Riciclo la vecchia sub di vb6 ?




Sabrina

Posts:142

--
22 Nov 2007 15:55  
Ok, ho controllato la statusbar, ma non mi pare abbia questa funzionalità, e comunque è dichiarato componente disponibile solo per compatibilità e non mi piace molto utilizzare questo tipo di componenti.

Così ho deciso di provare a crearmi il mio primo componente ereditando da label e inserendo una nuova proprietà Marquee
che se impostata a True mi rende il testo scorrevole

Però per fare questo devo comunquere utilizzare un timer da abilitare con Marquee = True e disabilitare quando False
o mi sbaglio ?

PS: grazie della fiducia, ma le mi conoscenze di NET sono ancora così superficiali che la scrittura di un articolo .....


Inviato da Sabrina (DNW TEAM) on 21/11/2007 19.02.26

A quanto ricordo, e potrei anche sbagliarmi,
c'era la funzione per visualizzare un testo scorrevole in un pannello della statusbar se questo può aiutarti, credo ci sia una property sul pannello dove indicare marquee

per creare un testo scorrevole che non stia nella status bar credo ti possa bastare uno stringbuilder ed un thread separato con un thread sleep fra una lettera e l'altra...

puoi creare ad esempio una classe che eredita da label ed implementare la tua funzione oppure, come in questo esempio che si trova su codeproject puoi scrivere direttamente su un controllo o su una label...

http://www.codeproject.com/cs/miscctrl/csmarquee.asp

Se vuoi creare un controllo e ti va di condividerlo con noi poi, ci scrivi un bell'articolo e lo pubblichiamo ;)

saluti
Sabrina




Posts:246

--
22 Nov 2007 16:59  
Magari questa può essere una buona base di partenza.
Ho utilizzato un timer così puoi riciclare il tuo vecchio codice.

Ovviamente può essere migliorata aggiungendo altre proprietà come ad esempio l'inversione della direzione, il colore, ecc...

Per farlo bene ci vuole un pò di tempo :tongue: ... a te l'onore (soprattutto l'onere... :w00t:

Una volta che è perfezionato sostituisci il timer con un BackgroundWorker ed utilizza uno StringBuilder per migliorare le prestazioni.

Poi scrivi l'articolo :D

Andrea

PS: puoi copiare il codice direttamente nella form.

Public Class Form1

Friend WithEvents MyScrollLabel1 As WindowsApplication1.myScrollLabel
Friend WithEvents Button1 As System.Windows.Forms.Button

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Me.Controls.Add(Me.Button1)
Me.Controls.Add(Me.MyScrollLabel1)

'MyScrollLabel1
Me.MyScrollLabel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.MyScrollLabel1.Location = New System.Drawing.Point(87, 64)
Me.MyScrollLabel1.Name = "MyScrollLabel1"
Me.MyScrollLabel1.Run = False
Me.MyScrollLabel1.Size = New System.Drawing.Size(202, 23)
Me.MyScrollLabel1.Speed = 0
Me.MyScrollLabel1.TabIndex = 0
Me.MyScrollLabel1.Value = "MyScrollLabel from DotNewtWork... "

'Button1
Me.Button1.Location = New System.Drawing.Point(141, 105)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(75, 23)
Me.Button1.TabIndex = 1
Me.Button1.Text = "Start"
Me.Button1.UseVisualStyleBackColor = True

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If Me.Button1.Text = "Start" Then
Me.MyScrollLabel1.StartScroll()
Me.Button1.Text = "Stop"
Else
Me.MyScrollLabel1.StopScroll()
Me.Button1.Text = "Start"
End If
End Sub
End Class

Class myScrollLabel
Inherits System.Windows.Forms.Label

Dim _Run As Boolean
Property Run() As Boolean
Get
Return _Run
End Get
Set(ByVal value As Boolean)
If value Then
Me.Timer.Start()
Else
Me.Timer.Stop()
End If
_Run = value
End Set
End Property

Dim _Value As String
Property Value() As String
Get
Return _Value
End Get
Set(ByVal value As String)
_Value = value
End Set
End Property

Dim _Speed As Integer
Property Speed() As Integer
Get
Return _Speed
End Get
Set(ByVal value As Integer)
If value > 0 Then
Me.Timer.Interval = value
End If
_Speed = value
End Set
End Property

Friend Sub StartScroll()
Me.Timer.Start()
End Sub

Friend Sub StopScroll()
Me.Timer.Stop()
End Sub

Dim WithEvents Timer As New System.Windows.Forms.Timer

Dim i As Integer
Private Sub Timer_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer.Tick
Me.Text = Me.Value.Substring(i)
i += 1
If i = Me.Value.Length - 1 Then
i = 0
End If
End Sub
End Class

Posts:246

--
22 Nov 2007 17:03  
Scusami, dopo
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

aggiungi

MyScrollLabel1 = New myScrollLabel
Button1 = New Button

Andrea

Posts:142

--
22 Nov 2007 17:09  
Inviato da AndreaZ on 22/11/2007 17.59.02

Magari questa può essere una buona base di partenza.
...........

Beh questa è una buona base di partenza a 100 metri dal traguardo :)))

Grazie

Posts:813

--
22 Nov 2007 19:11  
Oltre alla StatusBar, c'è anche la StatusStrip che è quella di 2005, ma non vedo la possibilità di utilizzare un testo scorrevole, in compenso c'è il testo in verticale... BAH... per il componente fai attenzione solo all'uso dei thread per non rischiare di bloccare qualcosa mentre il testo scorre.
Direi che l'uso del timer per modificare il testo va bene, però per rendere più performante la scrittura del testo suggerirei l'override dell'evento paint...
Il link che ti ho inviato su codeproject funziona così e se hai bisogno di un traduttore da C# a VB trovi il link nella nuova pagina Utility ;)
Sabrina


Inviato da Gianni on 22/11/2007 16.55.17

Ok, ho controllato la statusbar, ma non mi pare abbia questa funzionalità, e comunque è dichiarato componente disponibile solo per compatibilità e non mi piace molto utilizzare questo tipo di componenti.

Così ho deciso di provare a crearmi il mio primo componente ereditando da label e inserendo una nuova proprietà Marquee
che se impostata a True mi rende il testo scorrevole



Sabrina
You are not authorized to post a reply.

Active Forums 4.1
       
Articoli
Codedom Getting Started part 1
How to generate automatically C# or VB code using CodeDom and the .NET framework
2009/11/07 | Author: Sabrina Cosolo
Mixed fry - General Purpouse classes (part 4)
Helper: a class to Log events, with an event, event handler and enumeration
2007/10/24 | Author: Sabrina Cosolo
ASP.NET immagini dinamiche con HttpHandler
Costruiamo un HttpHandler per la creazione di immagini dinamiche
2007/10/24 | Author: Rudy Azzan
Code Unit Testing (part 1)
How to start building tests to strengthen our code
2007/12/26 | Author: Sabrina Cosolo
Panoramica del Sistema dei Comandi
Come iniziare a capire com'è fatto WPF (parte 5)
2007/09/30 | Author: Patrizia Cosolo
Starting from Scratch with WPF (Part 3)
Rows, deities, brushes and refrigerators (first part)
2007/11/22 | Author: Sabrina Cosolo
Breadcrumbs of Inheritance
Adding new features to an already modified TreevView control
2009/06/05 | Author: Francesca Mazzoni
Getting started with WPF
A first look to the template base of a WPF project
2007/08/16 | Author: Sabrina Cosolo
    Print     
Home|Forums|Blogs|Mappa del sito
© 2007-2010 by DotNetWork  .:.  Terms Of Use  .:.  Privacy Statement  .:.  Login  .:.