Как вывести форму windows на передний план в C#?
In my application when the user clicks on a label to open a form the form opens in the background.I mean it does not come to the front but is rather placed on taskbar. once the user cancels that instance of form and again clicks on the label,the form opens in foreground.Following portion of code does the specific work.
if (DataFormDlg.Instance.InvokeRequired) { DataFormDlg.Instance.BeginInvoke( new ShowDataFormDelegate(ShowDataForm), pageId, timeout); return; } DataFormDlg.Instance.CurrentPageId = pageId; DataFormDlg.Instance.Timeout = timeout; if (!DataFormDlg.Instance.Visible) DataFormDlg.Instance.ShowDialog(); else DataFormDlg.Instance.Focus();
Here the DataFormDlg is derived from windows form.
Что я уже пробовал:
Я слышал, что BringToFront() и Activate () могут помочь, но не уверен, как их использовать.
Ravi Bhavnani
Попробуйте DataFormDlg.Пример.TopMost = true;
/ Рави
Philippe Mori
Тебе это почти никогда не нужно... Если он не работает, значит, что-то не так было сделано, как не установил владелец.
Philippe Mori
Если вы правильно укажете соответствующего владельца и не будете возиться с включением форм, то у вас никогда не должно возникнуть такой проблемы!
Если форма находится в панели задач, то вы, вероятно, не устанавливаете владельца и не настраиваете свойства формы.
На самом деле, вероятно, труднее заставить его работать неправильно, так как обычно он просто работает так, как ожидалось.
BillWoodruff
Пожалуйста, добавьте конкретное описание того, как вы используете потоковую обработку в своем коде. Что такое основная форма и как она запускает другие потоки ?