2011-08-18 1 views
1

J'ai besoin d'afficher le texte anglais dans une liste avec la propriété RightToLeft définie sur "true".
Lorsque je place des crochets dans le texte, il semble être inversé.
Si je tente d'écrire « Stack (dépassement de capacité) » Je verrai « (Stack (trop-plein »
est-il un moyen de résoudre ce problèmeC# ListView et RightToLeft

cela fait partie de mon code.?

    Item = (ListViewItem) myList.Items.Add(id, myString, iconIndex); 
        MyListView.SetSubItemText(Item, 1, s1); 
        MyListView.SetSubItemText(Item, 2, s2); 
        MyListView.SetSubItemText(Item, 3, s3); 
        MyListView.SetSubItemText(Item, 4, s4); 
+1

Pouvez-vous coller le code que vous utilisez pour écrire dans ListView? – Otiel

+0

J'ai créé un listview ici et ajouté manuellement des articles comme vous l'avez dit. Mais rien de tel que j'ai observé ici. S'il vous plaît nous donner plus de détails/code. – Zenwalker

Répondre

1

Cela dépend fortement de la version de Windows que vous utilisez, la vue de liste est implémentée comme un contrôle natif dans Windows, la classe ListView est seulement un wrapper managé pour elle.Le comportement de rendu de droite à gauche a changé entre les différentes versions

En règle générale, vous ne devez définir RightToLeft sur Yes whe n vous avez localisé votre interface utilisateur dans un langage qui nécessite un rendu du texte de droite à gauche. Hébreu ou arabe. Obtenir un comportement inhabituel avec des chaînes dans une autre langue n'est pas inattendu. Si votre intention était d'obtenir un alignement différent en utilisant cette propriété, vous devrez trouver une alternative. Comme OwnerDraw ou ColumnHeader.TextAlign