Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to make Listbox's texts center aligned in desktop application using c#.net

Please tell me how can I align center to my ListBox's text in desktop application.
I am using C#.Net in Visual Studio 2005.

I am using Windows forms.

like image 903
Dr. Rajesh Rolen Avatar asked May 31 '10 11:05

Dr. Rajesh Rolen


2 Answers

You can set the DrawMode property of the ListBox to DrawMode.OwnerDrawFixed, which gives you control over the entire graphical representation of each item. For instance:

ListBox listBox = new ListBox();
listBox.DrawMode = DrawMode.OwnerDrawFixed;
listBox.DrawItem += new DrawItemEventHandler(listBox_DrawItem);

    void listBox_DrawItem(object sender, DrawItemEventArgs e)
    {
        ListBox list = (ListBox)sender;
        if (e.Index > -1)
        {
            object item = list.Items[e.Index];
            e.DrawBackground();
            e.DrawFocusRectangle();
            Brush brush = new SolidBrush(e.ForeColor);
            SizeF size = e.Graphics.MeasureString(item.ToString(), e.Font);
            e.Graphics.DrawString(item.ToString(), e.Font, brush, e.Bounds.Left + (e.Bounds.Width / 2 - size.Width / 2), e.Bounds.Top + (e.Bounds.Height / 2 - size.Height / 2)); 
        }
    }
like image 104
C.Evenhuis Avatar answered Sep 28 '22 09:09

C.Evenhuis


In WPF you'll use the Control.HorizontalContentAligment property:

<ListBox Name="lstSample" 
         HorizontalContentAlignment="Center"
    <ListBoxItem>Item 1</ListBoxItem>
    <ListBoxItem>Item 2</ListBoxItem>
    <ListBoxItem>Item 3</ListBoxItem>
</ListBox>

In Windows Forms you'll have to draw the content of the ListBox yourself by handling the DrawItem event. Here's an example on how to do it.

like image 31
Enrico Campidoglio Avatar answered Sep 28 '22 10:09

Enrico Campidoglio