2010-09-28 3 views
3

У меня есть простое приложение winforms, при выполнении операций он показывает дочернее окно каждый раз. Если я открою окно браузера (полностью максимизированное) или какое-то другое окно, как обычно, приложение вернется с дочерним окном, щелкнув exe, который находится на панели задач , только дочернее окно становится видимым, но окно приложения не появляется в поле зрения. Я хочу знать, как показывать оба окна, когда я выбираю его из панели задач.Простой пользовательский интерфейс в winforms

childwindow также WinForm, чья верхний уровень свойства установлено как истинные, отдельно от него ничего не является новым (просто нажав на кнопку или ячейку в GRID я создать объект для формы и использую его шоу Собственности ПРОЯВИТЬ)

AlertMsgWindow _alertMsg; 
    void dataGridViewAlerts_MouseDoubleClick(object sender, MouseEventArgs e) 
    { 
     try 
     { 
      if (!string.IsNullOrEmpty(this.dataGridViewAlerts.getValue(0, this.dataGridViewAlerts.SelectedRow))) 
      { 
       this.dataGridViewAlerts.setCellImage(0, this.dataGridViewAlerts.SelectedRow, "NewsIconRead"); 

       if (_alertMsg == null || _alertMsg.IsDisposed) 
       { 
        if (_alertMsg != null) 
        { 
         _alertMsg.onDeleteMessageRequest -= new DeleteMessage(_alertMsg_onDeleteMessageRequest); 
         _alertMsg.Dispose(); 
        } 
        _alertMsg = new AlertMsgWindow(); 
        _alertMsg.onDeleteMessageRequest += new DeleteMessage(_alertMsg_onDeleteMessageRequest);      
       } 

       _alertMsg.FillDetails(alertDetails[IDcollection[this.dataGridViewAlerts.SelectedRow]]); 
       if (!_alertMsg.Visible) 
       {       
        _alertMsg.Location = PointToScreen(new Point(this.Width/4, -this.Height));       
        _alertMsg.Show(this); 
       } 

       if (onReadMessageReq != null) 
        onReadMessageReq(IDcollection[this.dataGridViewAlerts.SelectedRow]); 
      } 
     } 
     catch (Exception) 
     { } 
    }    

Примечание: эТО ПРОИСХОДИТ ТОЛЬКО в Windows2000

Я использовал компонент с именем Dotnetmagic.dll, я не знаю, вызывает ли это problem.can кто-то помогает мне решить эту

+3

Я думаю, что это будет зависеть от того, как * вы показываете дочернее окно. Можете ли вы поделиться некоторым кодом, показывающим, как это делается? –

+2

Обновите машину, это не стоит вашего времени. Или наш. –

+0

Зачем кричать текст? – bruceboughton

ответ

1
I replaced these lines 

_alertMsg.Location = PointToScreen (новый пункт (этот. Ширина/4, -this.Height));
С

_alertMsg.Left = x; _alertMsg.Top = y;

и он решил мою проблему

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