TextBox i SelectionStart

0

Witam wszystkich serdecznie !
Mam pewien problem z TextBox a konkretnie z jego dwiema właściwościami SelectionStart i SelectionLenght.
Najlepiej podam to na przykładzie kodu:

     public class SimpleForm:Form
	{
		private Button button1
		private TextBox userID;
		
		
		public SimpleForm()
		{
			
			this.MaximizeBox = false;
			this.MinimizeBox = false;
			this.Opacity = 1;
			this.Size = new Size(430, 480);
			this.StartPosition = FormStartPosition.Manual;
			this.DesktopLocation = new Point(10, 10);
			this.Text = "Ręcznie skonstruowany formularz";
			
			
			
			button1 = new Button();
			button1.Text = "Przycisk";
			button1.Location = new Point(200, 415);
			button1.Click += new EventHandler(OnButton);
			this.Controls.Add(button1);
			
			userID = new TextBox();
			userID.Multiline = true;
			userID.Size = new Size(400, 400);
			userID.Location = new Point(10,10);
			this.Controls.Add(userID);
		}
		
		private void OnButton(object sender, EventArgs e)
		{
			
			userID.SelectionStart = 10;
			userID.SelectionLength = 30;
		}
}

Teoretycznie naciśnięcie przycisku "Przycisk" powinno zaznaczyć wcześniej wklejony tekst do TexBox "userID". A konkretnie od 10 do 30 elementu. Jednak u mnie się nic nie dzieje. Proszę powiedzcie mi co robię nie tak. Z góry dziękuję za udzieloną pomoc.
Pozdrawiam

0

Dzieje się tak, ponieważ tracisz focusa na kontrolce. Przykład jak podświetlić tekst pomimo straty focusa:

private void button1_Click(object sender, EventArgs e)
        {
            textBox1.SelectionStart = 5;
            textBox1.SelectionLength = 10;
            textBox1.HideSelection = false;
        }
0

Dziękuję Ci bardzo za pomoc. Mam jeszcze prośbę, czy mógłbyś mi bardziej rozjaśnić co mam rozumieć przez "ponieważ tracisz focusa na kontrolce" ? Szukałem w google jakiś informacji o tej metodzie setFocus jednak nie znalazłem dokładnego wyjaśnienia.

0

Właściwość Focused.
Kiedy masz np. dwie kontrolki textbox i w jednej zaznaczysz jakiś tekst, przejdziesz do drugiej to zaznaczenie w pierwszej zniknie ponieważ straciła Focus (aktywność). Ustawiając własność którą podałem, zaznaczenie nie zniknie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1