If the column text strings does not fit the column width (set at design time), three dots (...) will be displayed at run time, as shown below.
Display the text fully in the column, and get rid of the ...
For one moment, you may think of finding the length of the longest string in the column and assign it to the width of the column header. But wait, the length would be in terms of number of characters, whereas the width of the column should be in pixels. So, this will not work, unless you use a utility function to convert the length of the text (taking into consideration the font being used) and calculate it in terms of pixel. Yes it is possible :-) but you won't see it in this post!
At runtime, set the Width of the ColumnHeader to:
a) -1 to adjust the width of the longest item in the column (without taking into consideration the column heading).
hdrCountry.Width = -1;
hdrName.Width = -1;
Now, the text in the columns is displayed correctly, but not the heading of the first column.
b) -2 to autosize width of the column, taking into consideration the column heading.
hdrCountry.Width = -2;
hdrName.Width = -2;
Now, it works fine. Hope it helps.