11
votes

Ajout de manière programmée sur le formulaire Windows (longueur d'étiquette?)

Dans mon code, je crée une étiquette avec les éléments suivants: xxx

La chaîne appelée nom est définie avant cela et a une longueur d'environ 50 caractères. Cependant, seuls les 15 premiers sont affichés dans l'étiquette sur mon formulaire. J'ai essayé de jouer avec le maximum de l'étiquette, mais à rien en vain.


1 commentaires

FYI: Initializer Syntaxe est beaucoup plus propre: Controls.add (nouvelle étiquette {emplacement = nouveau point (13, 13), autosize = true, texte = nom});


4 Réponses :


9
votes

Essayez d'ajouter la propriété Autosize: xxx

Lorsque vous placez une étiquette sur un formulaire avec l'éditeur de conception, cette propriété par défaut est true, mais si vous créez l'étiquette dans le code comme vous l'avez fait. , la valeur par défaut est false.


0 commentaires

3
votes

Essayez la propriété Autosize = true;

MSDN Refs

Une autre manière utilise la méthode de mesure de la classe graphique xxx


0 commentaires

1
votes

Vous pouvez utiliser la propriété label.Autosize CODE> pour régler automatiquement la largeur de votre étiquette pour adapter correctement tout le contenu stocké dans label.text code>.

Ça vaut la peine Mentionnant que lors de la création de l'étiquette à l'aide de l'éditeur de conception, cette propriété est par défaut de true em>, mais lorsque vous créez programmable une étiquette sur votre propre propriété par défaut de la propriété false em>. P>

Graphics namelabel_g = namelabel.CreateGraphics ();

namelabel.Width = namelabel_g.MeasureString (
  namelabel.Text, namelabel.Font
);


0 commentaires

0
votes
panel_saved.Controls.Add(
    new Label 
    { 
        Location = new Point(1, 2), 
        Size = new System.Drawing.Size(43, 18), 
        BorderStyle = BorderStyle.FixedSingle, 
        Text = "yourdata" 
    });

0 commentaires