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?
risposta
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
- Hai davvero bisogno di un controllo
TextBox
. Può unLabel
funzionare per te. Se sì, alloraLabel
non ha il problema che descrivi sopra. In caso contrario, è possibile utilizzare un trucco ingegnoso per visualizzare sempre i contenuti in unLabel
e passare a unTextBox
quando un utente inizia a digitare. - Un altro modo è disattivare lo scorrimento nel TextBox. Regola l'altezza dello
TextBox
su 3 linee chiaramente visibili. Ora rilascia questoTextBox
in unPanel
. Assicurati che loPanel
utilizziPanel.AutoScroll = true
(puoi utilizzare un numeroVerticalScrollbar
oHorizontalScrollbar
o entrambi, se hai bisogno di un maggiore controllo). Ora regolare loPanel.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
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.
@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. –
Il commento sopra è una risposta alla domanda: "L'indicazione della barra di scorrimento non è sufficiente?" –
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. –