2016-05-21 4 views
1

Мои c#console application открывает login form, в котором пользователь вводит регистрационную информацию, проблема в том, что, когда это login form открывает focus все еще установлен в console application даже если focus должен быть установлен на login form. Я пробовал использовать функции Focus() & Activate() без какой-либо удачи. Вот пример того, как я попытался установить focus от моего console application и установить focus мои login form:Установите фокус в форму

static void StartLoginForm() 
{ 
     Form frm = new Form(); 
     frm.ShowDialog(); 
     frm.Focus();//Didn't work for me 
     frm.Activate();//Also didn't work for me 
} 

Что я делаю неправильно? Любая помощь будет очень признательна!


Спасибо за ваше время.

+1

ShowDialog является модальным вызов. Это означает, что вызов не возвращается, пока вы не закроете форму. Поэтому, когда вы вызываете Focus или Активируете форму, больше нет на экране – Steve

+0

@Steve Ohh, это имеет смысл. Я попытался использовать Show(), но, похоже, как только он закрывает форму входа, как только он открывается:/ – C0d1ng

ответ

2

Попробуйте это:

static void StartLoginForm() 
{ 
    Form frm = new Form(); 
    frm.Show(); 
    frm.Activate(); 
    Application.Run(frm); 
} 
+0

Это работает отлично! Большое вам спасибо! – C0d1ng

+1

Я рад слышу это! Спасибо тоже :) –

1

Вы попробовали Сначала сфокусируйтесь на фокусе, а затем укажите форму?

static void StartLoginForm() 
{ 
     Form frm = new Form(); 
     frm.Focus(); 
     frm.ShowDialog(); 
} 
+0

Да, к сожалению, это не работает :( – C0d1ng

+0

Application.OpenForms [frm.Name] .Focus (), похоже, вызывает необработанное исключение. Может ли это быть вызвано тем, что я использую frm.ShowDialog(); для отображения формы? – C0d1ng

+0

нет, это потому, что frm.Name пуст, я извиняюсь –

Смежные вопросы