2009-11-11 3 views
0

Je ne trouve pas de propriété CanGrow sur le contrôle Textbox. Ceci est courant dans certains autres contrôles, et ce qu'il fait est d'étendre le contrôle pour accomoder plus de données. De toute façon pour obtenir cette fonctionnalité dans le TextBox?Winform Textbox CanGrow?

Répondre

0

Eh bien, je suis venu avec ceci:

Private Sub TextBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox.TextChanged 
     'check to see if textbox has text 
     If (TextBox.TextLength > 0) Then 
      'resize height of textbox by count of lines (plus add some padding) 
      TextBox.ClientSize = New Size(TextBox.ClientSize.Width, Convert.ToInt32((TextBox.Lines.Length * TextBox.Font.Height) + (TextBox.Font.Height * 0.5))) 
     Else 
      'resize to one line height (plus padding) 
      TextBox.ClientSize = New Size(TextBox.ClientSize.Width, Convert.ToInt32(TextBox.Font.Height + (TextBox.Font.Height * 0.5))) 
     End If 
End Sub 

Note: il ne fonctionne pas avec le mot-chaîne.

0

Je ne connais pas CanGrow. Cherchez-vous une propriété Anchor peut-être? De toute façon pour obtenir cette fonctionnalité dans la TextBox ?

0

Eh bien, oui, mais vous devrez peut-être vous en occuper manuellement. La fonction Graphic.MeasureString() peut être ce que vous cherchez afin de régler la largeur correctement. Gardez à l'esprit que MeasureSting peut avoir des problèmes lors de la mesure de chaînes multilignes.

0

Si vous définissez les propriétés d'ancrage en haut, à gauche, en bas et à droite, le contrôle augmente à mesure que le formulaire est redimensionné.

Je pense qu'une meilleure option est d'utiliser la station d'accueil. Je configure généralement une mise en page de panneau avec un ancré au client, puis je mets le contrôle que je veux redimensionner dans le panneau ancré au client, et définissez le contrôle pour ancrer au client ainsi.

+0

seulement bon si je veux remplir le formulaire entier. Je ne. Mais si j'ai une très longue ligne, je veux l'emballer et la développer. – Alex