2011-11-16 15 views
12

Mam pole tekstowe na formularzu dialogowym, chcę skupić się na nim po załadowaniu formularza, ale z jakiegoś powodu tak się nie dzieje. Próbowałem: Focus i form_load zdarzenia i umieścić metodę skupienia zaraz po inicjalizacji formularza.jak ustawić fokus na polu tekstowym w formularzu okna dialogowego przy użyciu C#

+0

Gdzie twój kod? Mówisz, że próbowałeś rzeczy, ale nie widzę na to dowodów. –

+0

Ponieważ brzmi to tak, jakbyś mówił o WinForm (np. Twoim odwołaniu do 'Form_Load'), dodałem dla ciebie tag WinForm. –

Odpowiedz

25

Możesz wywołać metodę Control.Focus() w programie obsługi zdarzeń w formularzu dialogowym Activated lub ustawić kolejność Tabulatora lub użyć metody Select().

+1

miło, nigdy nie myślałem, że to było spowodowane tabindex, wielka pomoc !! – ikel

+0

Ustawiłeś mnie we właściwym kierunku, używając zdarzenia 'Enter' –

1

Czy próbowałeś użyć textBox1.Select();?

+0

tak, próbowałem, to nie działało, potem dzięki AVD pomógł mi – ikel

1

Spróbuj użyć textbox2.Select() w zdarzeniu ładowania w oknie dialogowym.

9

Zamiast tego użyj zdarzenia pokazanego w formularzu. Kontrola nie może uzyskać fokusu, gdy forma nie jest wyświetlana.

public partial class Form1 : Form 
{ 
    private void Form1_Shown(object sender, EventArgs e) 
     { 
       textBox1.Focus(); 
     } 
} 
+0

umieszczenie control.focus() w pokazanym zdarzeniu formy działa świetnie. – docesam

0

Możesz również użyć metody ActiveControl w oknie dialogowym. Na przykład, jeśli utworzysz formularz okna dialogowego w kodzie, na przykład [Formularz dialogowy = nowy formularz()], wówczas możesz użyć okna dialogowego .ActiveControl = "Nazwa twojej kontroli".

Powiązane problemy