Laden...

Mehr als einen Tastenanschlag in der Listbox erkennen

Erstellt von zervantis vor 19 Jahren Letzter Beitrag vor 19 Jahren 1.782 Views
Z
zervantis Themenstarter:in
10 Beiträge seit 2004
vor 19 Jahren
Mehr als einen Tastenanschlag in der Listbox erkennen

Hallo,

ich habe eine Listbox in der sich ein ganzer Haufen 7 stelliger Zahlen befindet. Wird nun eine Taste gedrückt springt die Listbox auf das erste Element das mit der gedrückten Zahl übereinstimmt, soweit so fast gut. Wie kann ich es nun realisieren, dass der Benutzer eine 7 stellige Zahl eintippt und die Listbox auf diese Zahl springt ? Geht das überhaupt ?

Gruß Chris

381 Beiträge seit 2004
vor 19 Jahren

Mit einer AutoComplete ListBox sollte das funktionieren, allerdings gibt es diese Funktion im Framework 1.1 nicht (In 2.0 ist sie mit dabei). Deshalb musst du dir selber helfen. Ich habe dir mal einen ungetesteten Code hin geschrieben:


public class AutoCompleteBox : ComboBox
{
	public AutoCompleteBox()
	{
		this.KeyUp += new KeyEventHandler(AutoCompleteBox_KeyUp);
	}

	private void AutoCompleteBox_KeyUp(object sender, KeyEventArgs e)
	{
		string text = this.Text;
		int idx;

		switch ( e.KeyCode )
		{
			case Keys.Left:
				return;
			case Keys.Right:
				return;
			case Keys.Up:
				return;
			case Keys.Down:
				return;
			case Keys.Delete:
				return;
			case Keys.Back:
				return;
		}

		idx = this.FindString( text );

		if ( idx >= 0 )
		{
			this.SelectedIndex = idx;
			this.Select( text.Length, this.Text.Length );
		}
	}
}

Das sollte funktionieren.

Mit freundlichen Grüßen

René Paschold
.NET Developer / Trainer / Speaker / Author /
Projectleader / Software-Architect


.blog http://www.rene-paschold.de/
.business http://www.smarthouse.de/

49.485 Beiträge seit 2005
vor 19 Jahren

Hallo zervantis,

mit scheint eine ComboBox mit


DropDownStyle = ComboBoxStyle.Simple;

ist relativ nah, an dem was du willst.

herbivore

Z
zervantis Themenstarter:in
10 Beiträge seit 2004
vor 19 Jahren

Original von Rene Paschold
Mit einer AutoComplete ListBox sollte das funktionieren....
Das sollte funktionieren.

Vielen Dank das funktioniert genau wie ichs wollte!!

Grüße Chris