В настоящее время у меня есть форма входа в систему, которая запускается в отдельном потоке при запуске основного приложения. Я попытался установить свойство TopMost в форме входа, но оно все еще не работает. Я не хочу использовать метод Application.Run, так как я имею дело с несколькими типами форм входа в систему и просто создаю интерфейс. Код ниже был упрощен:
ОБНОВЛЕНИЕ: Это было способ, которым было разработано окно входа в систему. Я не могу изменить это. Это работало в Windows XP, но не работает в Windows 7.
private void FormLoad()
{
ParameterizedThreadStart threadStart = delegate {
BeginLogin(_loginResults);
};
var thread = new Thread(threadStart);
thread.Start();
}
private void BeginLogin(LoginResults callback)
{
LoginData loginData = GetLoginData();
if (callback != null)
callback(loginData);
}
private LoginData GetLoginData()
{
ILoginForm loginForm = LoginFormCreate();
loginForm.TopMostDialog = true; // This property sets the TopMost property.
return loginForm.ShowLoginDialog();
}