2013-03-20 20 views
6

Ho un ListView con un po 'di ListViewItems (solo testo).ListViewItem testo troncato dopo la selezione - Compact Framework

listView1 = new ListView 
{ 
    View = System.Windows.Forms.View.Details, 
    HeaderStyle = ColumnHeaderStyle.None 
}; 


listView1.Columns.Add(String.Empty, -2, HorizontalAlignment.Left); 

L'immagine seguente è un esempio:

enter image description here

Il problema è che quando seleziono uno di questi elementi del testo viene troncato, come nell'immagine seguente:

enter image description here

Perché? Come posso risolvere questo problema?

+0

Potrebbe essere dovuto alla larghezza della colonna impostata su -2? Hai una ragione specifica per farlo? –

+0

Può fare la differenza per impostare l'intestazione 'ColumnHeader;' 'header.Width' su qualcos'altro, magari lanciarlo in' SelectionChanged {} (header.Width = listView.SelectedItem (0) .Length; ' – plast1K

+0

@MartinParkin -2 perché voglio che la colonna occupi tutto lo spazio disponibile (nessuna linea verticale) – Nick

risposta

1

Il problema è che il testo di ListViewItem termina con spazi vuoti.Devi TrimEnd la stringa e hai la soluzione.

0

Può fare la differenza per impostare:

ColumnHeader header; 

allora, la proprietà header.Width a qualcos'altro, forse gettare in

SelectionChanged{}( 
    header.Width = listView.SelectedItem(0).Length; 
) 

Dare un colpo. Sto solo pensando che la larghezza di intestazione/della colonna sta giocando trucchi su come andavano in default, o potenzialmente impostato da voi con la -2

Questo collegamento può aiutare con ColumnHeaders: MSDN ColumnHeaders


EDIT:

Quindi ho esaminato alcune delle cose di CompactFramework.

This Link sembra essere rilevante per lo stesso problema.

provare a impostare la vostra proprietà ColumnWidth a -1

listView1.Columns.Add(String.Empty, -1, HorizontalAlignment.Left); 

Questo dovrebbe impostare al valore più ampio nella colonna. Vedo che le opzioni -2 dovrebbero funzionare, ma prova -1, solo per vedere se fa la differenza.

Doppia Edit:

I nostri commenti sono stati spostati in un Chat/Discussion, anche se siamo stati in grado di capire che cosa sta causando questo. Se qualcuno ha dei suggerimenti o conosce una soluzione, ti preghiamo di informarci!

+0

Non c'è la proprietà ColumnHeader o Length nel Compact Framework ... – Nick

+0

Oh, noooo! Hrm, è un peccato, vedrò se riesco a trovare qualcos'altro, avrei dovuto capire che era per il Compact. – plast1K

+0

Ho modificato il rispondi con qualche altra informazione, spero che aiuti. – plast1K

0

Utilizzare questa logica dimensione della colonna invece:

listView1.Columns[0].Width = listView1.Width; 
+0

Fateci sapere se funziona! E se hai qualche idea sul perché lo corregge:] – plast1K

+0

Io non lavoro. Non so perché ma listView1.Columns [0] .Width è 460 nell'evento SelectionChanged (invece di -2). Il mio listView1.Width è 464, quindi se aggiungo questo codice nell'evento posso vedere la barra di scorrimento orizzontale, ma il testo è ancora troncato. – Nick

0

Si dovrebbe essere in grado di modificare manualmente la larghezza della colonna. Vai in modalità designer e cambialo manualmente. Basta trascinarlo

+0

Il problema non è la larghezza della colonna (che è sempre la stessa). – Nick

0

Puoi controllare lo stile dell'articolo selezionato. . .
L'elemento selezionato Textwrapping = "Wrap" o Aumento della larghezza della colonna dell'articolo selezionata. Penso solo a questo problema.