Feedback

C# - Autosize-TextBox

Veröffentlicht von am 17.10.2008
(2 Bewertungen)
Eine TextBox die ihre größe an den eingegebenen Text anpasst, ähnlich dem Google-Suchfeld in der Toolbar.
GFU-Schulungen  [Anzeige]

VB.NET 2017/2015/2013 Einführung

Das Seminar befähigt Sie zur eigenständigen Entwicklung von anwenderorientierten Programmen in VB.NET, worin auch der Einsatz von Datenbanken enthalten ist.

VB.NET Aufbau

Sie verfügen nach der Schulung über fundierte Kenntnisse in der Arbeit mit objektorientierten Modellen in VB.NET und können wiederverwendbare Komponenten eigenständig erzeugen.

using System;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
	public class AutoSizeTextBox : TextBox
	{
		#region Properties
		[Description("Minim width of the textbox")]
		[DefaultValue(80)]
		public int MinWidth { get; set; }

		[Description("Maximum width of the textbox")]
		[DefaultValue(400)]
		public int MaxWidth { get; set; }

		[Description("Padding")]
		[DefaultValue(5)]
		public new int Padding { get; set; }
		#endregion
		//---------------------------------------------------------------------
		#region Ctor
		public AutoSizeTextBox() : base()
		{
			this.MinWidth = 80;
			this.MaxWidth = 400;
			this.Padding = 5;
		}
		#endregion
		//---------------------------------------------------------------------
		#region Overrides
		protected override void OnTextChanged(EventArgs e)
		{
			// "Inform" the base:
			base.OnTextChanged(e);

			using (Graphics g = this.CreateGraphics())
			{
				SizeF size = g.MeasureString(this.Text, this.Font);
				int width = (int)size.Width + this.Padding;

				if (width < this.MinWidth) width = this.MinWidth;

				this.Width = width;
			}
		}
		#endregion
	}
}
Abgelegt unter TextBox, AutoSize.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!