2016-02-01 21 views
5

Nella mia applicazione WinForms, ho caselle di testo multilinea di dimensioni fisse che possono contenere un numero variabile di linee. Voglio che le caselle di testo si adattino a due righe più le tasse in esse in modo che venga visualizzata solo la parte superiore della terza riga quando è presente una terza riga. Sfortunatamente, la terza riga non viene visualizzata e c'è solo uno spazio vuoto - devi scorrere verso il basso per vederlo. Questo non va bene perché l'idea è di indicare all'utente che lo scorrimento verso il basso potrebbe essere necessario. È possibile forzare la casella di testo per visualizzare la parte superiore della terza riga?Posso mostrare la parte superiore di una riga che non si adatta intera in una casella di testo multilinea?

+1

@GrantWinney Lo fa, ma il cambio di colore non è molto impressionante e le frecce sono piuttosto piccole. Ciò dovrebbe essere ovvio per l'utente, in quanto l'applicazione verrà utilizzata dai tecnici del service desk che risolvono generalmente da tre a quattro problemi di utente finale contemporaneamente. È sfortunato, ma questo è il nostro ambiente di lavoro attuale e potrebbe portare a errori. –

+0

Il commento sopra è una risposta alla domanda: "L'indicazione della barra di scorrimento non è sufficiente?" –

+0

Ho rimosso il mio commento perché ho capito che non hai abilitato le barre di scorrimento. L'ho provato comunque, e vedo il tuo punto ... la differenza tra le barre di scorrimento disabilitate e abilitate è molto ridotta. –

risposta

3

Non penso che si possa fare questo fuori dalla scatola. Ma ci sono 2 modi in cui posso pensare con il quale raggiungere il tuo obiettivo

  1. Hai davvero bisogno di un controllo TextBox. Può un Label funzionare per te. Se sì, allora Label non ha il problema che descrivi sopra. In caso contrario, è possibile utilizzare un trucco ingegnoso per visualizzare sempre i contenuti in un Label e passare a un TextBox quando un utente inizia a digitare.
  2. Un altro modo è disattivare lo scorrimento nel TextBox. Regola l'altezza dello TextBox su 3 linee chiaramente visibili. Ora rilascia questo TextBox in un Panel. Assicurati che lo Panel utilizzi Panel.AutoScroll = true (puoi utilizzare un numero VerticalScrollbar o HorizontalScrollbar o entrambi, se hai bisogno di un maggiore controllo). Ora regolare lo Panel.Height in modo che siano visibili solo 2 linee complete e la terza riga sia parzialmente visibile.

Lei ha detto che il vostro TextBox

può contenere un numero variabile di linee

Ma è anche menzionato

voglio le caselle di testo per adattarsi due linee più tasse in essi in modo che venga visualizzata solo la parte superiore della terza riga quando è presente una terza riga

Quindi non è sicuro che sia il caso. Se hai bisogno di regolare dinamicamente l'altezza del tuo , guarda questo post a Autoresize textbox control vertically

3

Forse potresti utilizzare la classe RichTextBox, che visualizza le linee parziali per impostazione predefinita. È derivato dalla stessa classe base di TextBox (TextBoxBase), quindi dovrebbe essere una sostituzione drop-in.