Partager via


Prise en charge bidirectionnelle pour les applications Windows Forms

Vous pouvez utiliser Visual Studio pour créer des applications Windows prenant en charge les langues bidirectionnelles (s'écrivant de droite à gauche), telles que l'arabe et l'hébreu. Cela inclut des formulaires standard, des boîtes de dialogue, des formulaires MDI et de tous les contrôles que vous pouvez utiliser dans ces formulaires ; c'est-à-dire, tous les objets de l'espace de noms Control.

Prise en charge de la culture

La culture et les paramètres de culture de l'interface utilisateur déterminent la façon dont une application utilise les dates, les heures, les monnaies, ainsi que d'autres informations. Pour les langues bidirectionnelles, la prise en charge de la culture et de la culture de l'interface utilisateur est identique à celle de toute autre langue. Pour plus d'informations, consultez Classes spécifiques à la culture pour les Windows Forms et les Web Forms globaux et Classes spécifiques à la culture pour les Windows Forms et les Web Forms globaux et Classes spécifiques à la culture pour les Windows Forms et les Web Forms globaux et Classes spécifiques à la culture pour les Windows Forms et les Web Forms globaux.

Propriétés RightToLeft et RightToLeftLayout

La classe Control de base, de laquelle les formulaires dérivent, inclut une propriété RightToLeft que vous pouvez définir de façon à modifier le sens de lecture d'un formulaire et de ses contrôles. Si vous définissez la propriété RightToLeft du formulaire, les contrôles du formulaire héritent, par défaut, de ce paramètre. Toutefois, vous pouvez également définir la propriété RightToLeft de façon individuelle pour la plupart des contrôles. Pour plus d'informations, consultez Comment : afficher du texte de droite à gauche dans les Windows Forms pour la globalisation et Comment : afficher du texte de droite à gauche dans les Windows Forms pour la globalisation et Comment : afficher du texte de droite à gauche dans les Windows Forms pour la globalisation et Comment : afficher du texte de droite à gauche dans les Windows Forms pour la globalisation et Comment : afficher du texte de droite à gauche dans les Windows Forms pour la globalisation.

L'impact de la propriété RightToLeft peut varier d'un contrôle à l'autre. Dans certains contrôles, la propriété définit uniquement le sens de lecture, comme dans les contrôles Button, TreeView et ToolTip. Pour d'autres, la propriété RightToLeft modifie à la fois l'ordre de lecture et la disposition. C'est le cas pour les contrôles RadioButton, ComboBox et CheckBox. D'autres contrôles nécessitent que la propriété RightToLeftLayout soit appliquée de façon à refléter sa disposition de droite à gauche. Le tableau suivant détaille l'impact des propriétés RightToLeft et RightToLeftLayout sur les contrôles Windows Forms.

Contrôle/Composant

Impact de la propriété RightToLeft

Impact de la propriété RightToLeftLayout

Effet miroir requis ?

Button

Définit le sens de lecture de droite à gauche. Inverse TextAlign, ImageAlign et TextImageRelation

Aucun effet

Non

CheckBox

La case à cocher s'affiche à droite du texte

Aucun effet

Non

CheckedListBox

Toutes les cases à cocher s'affichent à droite du texte

Aucun effet

Non

ColorDialog

Aucun impact. Dépend de la langue du système d'exploitation

Aucun effet

Non

ComboBox

Les éléments du contrôle de la zone de liste déroulante sont alignés à droite

Aucun effet

Non

ContextMenu

S'affiche aligné à droite avec un ordre de lecture de droite à gauche

Aucun effet

Non

DataGrid

S'affiche aligné à droite avec un ordre de lecture de droite à gauche

Aucun effet

Non

DataGridView

Affecte le sens de lecture de droite à gauche et la disposition du contrôle

Aucun effet

Non

DateTimePicker

Aucun impact. Dépend de la langue du système d'exploitation

Reflète le contrôle

Oui

DomainUpDown

Aligne à gauche les boutons haut et bas

Aucun effet

Non

ErrorProvider

Non pris en charge

Aucun effet

Non

FontDialog

Dépend de la langue du système d'exploitation

Aucun effet

Non

Form

Définit le sens de lecture de droite à gauche et inverse les barres de défilement

Reflète le formulaire

Oui

GroupBox

La légende s'affiche alignée à droite. Les contrôles enfants peuvent hériter de cette propriété

Utilisez un TableLayoutPanel dans le contrôle afin de prendre en charge la mise en miroir de droite à gauche.

Non

HScrollBar

Commence avec la case de défilement (curseur) alignée à droite

Aucun effet

Non

ImageList

Non requise

Aucun effet

Non

Label

Affiché aligné à droite. Inverse TextAlign et ImageAlign

Aucun effet

Non

LinkLabel

Affiché aligné à droite. Inverse TextAlign et ImageAlign

Aucun effet

Non

ListBox

Les éléments sont alignés à droite.

Aucun effet

Non

ListView

Définit l'ordre de lecture de droite à gauche. Les éléments restent alignés à gauche

Reflète le contrôle

Oui

MainMenu

Affiché aligné à droite avec un ordre de lecture de droite à gauche au moment de l'exécution (pas à celui du design)

Aucun effet

Non

MaskedTextBox

Affiche le texte de droite à gauche.

Aucun effet

Non

MonthCalendar

Aucun impact. Dépend de la langue du système d'exploitation

Reflète le contrôle

Oui

NotifyIcon

Non pris en charge

Non pris en charge

Non

NumericUpDown

Les boutons haut et bas sont alignés à gauche

Aucun effet

Non

OpenFileDialog

Aucun impact. Dépend de la langue du système d'exploitation

Aucun effet

Non

PageSetupDialog

Aucun impact. Dépend de la langue du système d'exploitation

Aucun effet

Non

Panel

Les contrôles enfants peuvent hériter de cette propriété

Utilisez un TableLayoutPanel dans le contrôle pour la prise en charge de droite à gauche

Oui

PictureBox

Non pris en charge

Aucun effet

Non

PrintDialog

Aucun impact. Dépend de la langue du système d'exploitation

Aucun effet

Non

PrintDocument

La barre de défilement verticale s'aligne à gauche et la barre de défilement horizontale commence à gauche

Aucun effet

Non

PrintPreviewDialog

Non pris en charge

Non pris en charge

Non

ProgressBar

Aucun impact

Reflète le contrôle

Oui

RadioButton

La case d'option s'affiche à droite du texte

Aucun effet

Non

RichTextBox

Les éléments du contrôle comprenant du texte s'affichent de droite à gauche, avec un ordre de lecture de droite à gauche

Aucun effet

Non

SaveFileDialog

Aucun impact. Dépend de la langue du système d'exploitation

Aucun effet

Non

SplitContainer

La disposition du panneau est inversée ; la barre de défilement verticale apparaît sur la gauche ; la barre de défilement horizontale commence à droite

Utilisez un TableLayoutPanel pour refléter l'ordre des contrôles enfants

Non

Splitter

Non pris en charge

Aucun effet

Non

StatusBar

Non prise en charge ; utilisez plutôt un StatusStrip

Aucun effet ; utilisez plutôt un StatusStrip

Non

TabControl

Aucun impact

Reflète le contrôle

Oui

TextBox

Affiche le texte de droite à gauche, avec un ordre de lecture de droite à gauche

Aucun effet

Non

Timer

Non requise

Non requise

Non

ToolBar

Non affectée par cette propriété ; utilisez plutôt un ToolStrip

Aucun effet ; utilisez plutôt un ToolStrip

Oui

ToolTip

Définit l'ordre de lecture de droite à gauche

Aucun effet

Non

TrackBar

Le défilement ou le suivi commence à droite ; lorsque l'Orientation est verticale, les graduations commencent à droite

Aucun effet

Non

TreeView

Définit uniquement l'ordre de lecture de droite à gauche

Reflète le contrôle

Oui

UserControl

La barre de défilement verticale apparaît à gauche ; le curseur de la barre de défilement horizontale se trouve à droite

Aucune prise en charge directe ; utilisez un TableLayoutPanel

Non

VScrollBar

Affiché sur le côté gauche au lieu du côté droit des contrôles à défilement

Aucun effet

Non

Encodage

Windows Forms prend en charge Unicode, par conséquent, vous pouvez inclure tout jeu de caractères lorsque vous créez vos applications bidirectionnelles. Toutefois, tous les contrôles Windows Forms ne prennent pas en charge Unicode sur l'ensemble des plateformes. Pour plus d'informations, consultez Encodage et globalisation des applications Windows Forms.

GDI+

Vous pouvez utiliser GDI+ pour dessiner du texte avec un ordre de lecture de droite à gauche. La méthode DrawString, utilisée pour dessiner du texte, prend en charge un paramètre StringFormat auquel vous pouvez affecter le membre DirectionRightToLeft de l'énumération StringFormatFlags afin d'inverser le point d'origine du texte.

Boîtes de dialogue courantes

Les outils système, tels que la boîte de dialogue Ouvrir, sont contrôlés par Windows. Ils héritent des éléments de langue du système d'exploitation. Si votre version de Windows dispose des paramètres de langue corrects, ces boîtes de dialogue fonctionneront correctement avec les langues bidirectionnelles.

De même, les boîtes de message passent par le système d'exploitation et prennent en charge le texte bidirectionnel. Les légendes des boutons des boîtes de message se basent sur le paramètre de langue actuel. Par défaut, les boîtes de message n'utilisent pas l'ordre de lecture de droite à gauche, mais vous pouvez spécifier un paramètre pour l'utiliser lors de leur affichage. Pour plus d'informations, consultez Comment : créer des boîtes de message pour des Windows Forms bidirectionnelles.

RightToLeft, barres de défilement et ScrollableControl

Il existe actuellement une limitation dans les Windows Forms qui empêche toutes les classes dérivées de ScrollableControl d'agir correctement lorsque RightToLeft est activé et AutoScroll a la valeur Yes. Par exemple, vous placez un contrôle Panel, ou une classe de conteneur dérivée de Panel (par exemple FlowLayoutPanel ou TableLayoutPanel), dans votre formulaire. Si vous affectez Yes à AutoScroll dans le conteneur, puis si vous affectez Right à la propriété Anchor sur un ou plusieurs contrôles du conteneur, aucune barre de défilement n'apparaîtra. La classe dérivée de ScrollableControl agit comme si AutoScroll avait la valeur No.

Actuellement, la seule solution consiste à imbriquer ScrollableControl dans un autre ScrollableControl. Par exemple, si la classe TableLayoutPanel doit fonctionner dans ce cas, vous pouvez la placer dans un contrôle Panel et affecter à la propriété AutoScroll de Panel la valeur Yes.

Effet miroir

L'effet miroir est l'inversement de la disposition des éléments de l'interface utilisateur de sorte qu'ils se présentent de droite à gauche. Dans un Windows Form mis en miroir, par exemple, les boutons Réduire, Agrandir et Fermer s'affichent à gauche, dans la barre de titre, et non pas à droite.

L'affectation de true à un formulaire ou à la propriété RightToLeft d'un contrôle inverse le sens de lecture des éléments sur un formulaire, mais cela n'inverse pas la disposition de droite à gauche, c'est-à-dire, que cela ne provoque pas la mise en miroir. Par exemple, les boutons Réduire, Agrandir et Fermer de la barre de titre du formulaire ne se déplacent pas à gauche. De même, certains contrôles, tels que le contrôle TreeView, requièrent une mise en miroir afin de modifier leur affichage pour s'adapter à l'arabe ou à l'hébreu. Vous pouvez refléter ces contrôles en définissant la propriété RightToLeftLayout.

Vous pouvez créer des versions mises en miroir des contrôles ci-dessous :

Certains contrôles sont scellés. Par conséquent, vous ne pouvez pas dériver de nouveau contrôle à partir de ceux-ci. Il s'agit notamment des contrôles ImageList et ProgressBar.

Voir aussi

Concepts

Prise en charge bidirectionnelle pour les applications Web ASP.NET

Autres ressources

Globalisation des Windows Forms