OVH Cloud OVH Cloud

listbox et alignement

2 réponses
Avatar
badubo
Bonjour,

Est-il possible de gerer l'alignement du texte (p.e. centré) dans une
listbox ?

Dans MSDN, il est ecrit :

HorizontalAlignment Enumeration : This enumeration is used in numerous
classes. A partial list of these classes is CheckedListBox, ColumnHeader,
ComboBox, ControlPaint, Label, ListBox, Control, RichTextBox, and TextBox.

Mais je ne la trouve pas dans les membres de ListBox...

2 réponses

Avatar
Fabien Bezagu
Badubo,

Je pense qu'il s'agit d'une erreur dans MSDN car je ne trouve aucune
relation entre HorizontalAlignment et ListBox. La ListView, elle par contre,
gère cette propriété.

A partir de là, tu as deux possibilités :

- Utiliser une ListView

- Mettre le mode de dessin sur OwnerDrawFixed et trapper l'évènement
DrawItem comme ça :

private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
{
e.DrawBackground();
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Center;
e.Graphics.DrawString(listBox1.Items[e.Index].ToString(), e.Font,
Brushes.Black, e.Bounds, sf);
e.DrawFocusRectangle();
}

Fabien

"badubo" a écrit dans le message de news:

Bonjour,

Est-il possible de gerer l'alignement du texte (p.e. centré) dans une
listbox ?

Dans MSDN, il est ecrit :

HorizontalAlignment Enumeration : This enumeration is used in numerous
classes. A partial list of these classes is CheckedListBox, ColumnHeader,
ComboBox, ControlPaint, Label, ListBox, Control, RichTextBox, and TextBox.

Mais je ne la trouve pas dans les membres de ListBox...



Avatar
badubo
Merci pour cette reponse rapide.

"Fabien Bezagu" <fbezagu_at_novacor_dot_fr> wrote in message
news:
Badubo,

Je pense qu'il s'agit d'une erreur dans MSDN car je ne trouve aucune
relation entre HorizontalAlignment et ListBox. La ListView, elle par
contre, gère cette propriété.

A partir de là, tu as deux possibilités :

- Utiliser une ListView

- Mettre le mode de dessin sur OwnerDrawFixed et trapper l'évènement
DrawItem comme ça :

private void listBox1_DrawItem(object sender, DrawItemEventArgs e)
{
e.DrawBackground();
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Center;
e.Graphics.DrawString(listBox1.Items[e.Index].ToString(), e.Font,
Brushes.Black, e.Bounds, sf);
e.DrawFocusRectangle();
}

Fabien

"badubo" a écrit dans le message de news:

Bonjour,

Est-il possible de gerer l'alignement du texte (p.e. centré) dans une
listbox ?

Dans MSDN, il est ecrit :

HorizontalAlignment Enumeration : This enumeration is used in numerous
classes. A partial list of these classes is CheckedListBox, ColumnHeader,
ComboBox, ControlPaint, Label, ListBox, Control, RichTextBox, and
TextBox.

Mais je ne la trouve pas dans les membres de ListBox...