2013-05-30 1 views
1

У меня есть библиотека классов, которая открывает 2 формы: первый - это заставка, в которой отображается загрузочное сообщение, когда загружаются сборки. Вторая показывает форму с некоторыми элементами управления. Моя проблема заключается в том, что моя библиотека классов вызывается через веб-апплет и JNI. Мои формы всегда отображаются за страницей браузера.Форма для открытия в фокусе/сверху

Я знаю, что у меня есть несколько разных вариантов, но каков наилучший способ убедиться, что мои формы открываются спереди, когда они впервые открыты? Я не хочу, чтобы они оставались на вершине навсегда. Focus и BringToFront, похоже, не работают.

public MyForm() 
{ 
    InitializeComponent(); 
    this.Focus(); 
    this.BringToFront(); 
} 

Activate() не работает, либо ...

+0

'Activate' должен работать, если вы позвоните в нужное время. Это время не в конструкторе. Вы должны позвонить ему после этого. – Dan

ответ

4

Вы находитесь на правильном пути, но поставить его в виде Показанный() событие:

public void MyForm_Shown(Object sender, EventArgs e) 
{ 
    Activate(); 
} 

Это обеспечит форма на самом деле видна и построена, когда вы просите ее шаг вперед.

+0

Я поместил это в свое событие «Shown», и событие получило правильное название, но оно по-прежнему отображается за моим браузером. – gwin003

+0

Что-нибудь еще происходит после запуска, который может быть перенаправлен на браузер? – DonBoitnott

+0

Нет, ничего не происходит после вызова моего Java-апплета, который бы перефокусировал браузер. Я думаю, что, возможно, мне нужно что-то сделать на Java, поскольку поток Java на самом деле запускает мой код? Если у меня есть консоль Java в фокусе при запуске формы, она работает так, как я ее хочу ... – gwin003