2010-05-25 26 views
16

Devo essere in grado di scorrere il testo su un'etichetta che sto usando per la porzione di crediti di un gioco di tris. Come posso fare in modo che ciò accada ci è stato insegnato solo a scorrere i valori numerici nella barra di scorrimento e non nel testo.Barra di scorrimento su un'etichetta

private void xGameCreditsButton_Click(object sender, EventArgs e) 
     { 
      this.xWinnerLabel.BackColor = Color.White; 
      this.xCreditsScrollBar.Visible = true; 
      this.xWinnerLabel.Text = "This game was made possible with the help of: blah bla blah"; 
     } 

risposta

31

Invece di un'etichetta, utilizzare un TextBox e impostare le proprietà ScrollBars, MultiLine e WordWrap in base alle proprie esigenze. Per disabilitare la modifica del TextBox (e quindi renderlo simile a un'etichetta), utilizzare la proprietà ReadOnly.

+0

Ok lo cambio in una casella di testo, ma ho bisogno di implementare la barra di scorrimento senza impostarle nella finestra delle proprietà come posso farlo? –

+0

Ogni proprietà impostata nella finestra delle proprietà può anche essere impostata nel codice; la tua domanda mostra già un bell'esempio di impostazione delle proprietà 'BackColor' e' Text'. Fai lo stesso per le proprietà menzionate nella mia risposta. – Heinzi

+0

ciao ho provato ad usare una casella di testo per questo, ma le mie righe di testo non vanno a capo di una nuova riga quando vengono visualizzate in una casella di testo, ma lo fanno in un'etichetta. Non so perché sia ​​un 'Environment.NewLine', ma è così che io uso l'etichetta, ma non scorrono, c'è qualcosa che posso fare per questo? – f1wade

4

caso contrario assolutamente deve essere un'etichetta, si potrebbe fare di questo un sola lettura multi-linea campo di modifica, invece. Il controllo di modifica scorrerà automaticamente.

+0

Questa è un'idea migliore. – SLaks

+0

non deve essere un'etichetta ma la barra di scorrimento è un requisito non c'è un modo per farlo con un'etichetta? –

+0

No. Le etichette non hanno una barra di scorrimento incorporata. Se vuoi dipingere solo una parte dell'etichetta, dovrai implementare lo scorrimento da solo. (NOTA: La mia esperienza è più con WinForms, potrebbe esserci un modo per farlo in WPF per quanto ne so.) –

4

Un controllo TextBox scrollabile di sola lettura sarà molto più semplice da utilizzare.

Se si desidera realmente utilizzare un'etichetta, è possibile inserire l'etichetta all'interno di un controllo Pannello scorrevole e impostare la proprietà AutoSize su true.

1

Poiché non vi può essere un motivo per non utilizzare una casella di testo (non volendo il testo per essere selezionabile e copiabile per esempio) qui è un'altra soluzione che funziona per me:

Mettere un pannello nella posizione in cui si desidera l'etichetta deve essere, impostare la proprietà AutoScroll su true. Quindi posizionare l'etichetta nel pannello, ancorarlo e impostare la proprietà AutoSize su true. Questo farà sì che il pannello fornisca le barre di scorrimento se il testo dell'etichetta si estende al di fuori del pannello.

Potrebbe essere necessario impostare MaximumSize per l'etichetta se si desidera che il testo scorra solo in una direzione (impostare una larghezza massima se si desidera solo lo scorrimento verticale o impostare l'altezza massima se si desidera solo lo scorrimento orizzontale).

Problemi correlati