2014-06-19 1 views
2

J'essaye de faire un Label en C#, qui encapsulerait le texte comme il aurait une largeur fixe et une hauteur variable. J'utilise ce code:La taille de l'étiquette n'est pas correcte

Label newMsg = new Label(); 
newMsg.AutoSize = true; 
newMsg.MaximumSize = new Size(350, 400); //setting fixed width, max height to avoid being too high for container 
newMsg.MinimumSize = new Size(350, 0); //fixed width, height doesn't matter 
newMsg.Text = msg; 
newMsg.Location = new Point(4, 7); 
newMsg.BackColor = Color.Red; //red to see the actual size in contrast to its container 

mais cela ne fonctionne pas. J'ai essayé de faire une recherche pourquoi, et peu importe si le texte est un mot ou un paragraphe entier, le newMsg.Height est toujours 23. Est-ce que quelqu'un sait pourquoi? Merci

+2

si vous avez besoin d'une taille personnalisée -> 'newMsg.AutoSize = false;' –

+0

Je pense que c'est la 'autosize'. Peut-être mis à faux? Quoi qu'il en soit, la taille peut entourer la taille de la police du texte. ** EDIT **: Laissez-moi voir si je l'ai eu: vous voulez que la hauteur de l'étiquette augmente si le texte à l'intérieur ne correspond pas à la largeur? Comme multiline? Je suis désolé, mais la question n'est pas très claire – chiapa

+0

J'ai essayé un peu plus de choses et j'ai découvert que le problème est assez différent que je pensais, désolé pour cela. L'étiquette se redimensionne correctement, elle s'étire et enveloppe le texte à une autre ligne. Le problème est que Label.Height renvoie toujours 23, même si ce n'est pas vrai –

Répondre

2

Tout comme d'autres l'ont déjà dit, changer AutoSize propriété sur false,

newMsg.AutoSize = false; 
1

Si la police est plus grande que la hauteur de l'étiquette et AutoEllipsis est vrai, vous devez définir AutoSize à false pour le texte à Être dessiné. msdn

Questions connexes