2010-09-28 8 views
3

J'ai une application winforms simple, en effectuant des opérations, il montre une fenêtre enfant à chaque fois. Si j'ouvre une fenêtre de navigateur (entièrement agrandie) ou une autre fenêtre comme d'habitude l'application retourne avec sa fenêtre enfant, en cliquant sur l'exe qui est dans la barre des tâches seule la fenêtre enfant est visible, mais la fenêtre de l'application ne vient pas en vue. Je veux savoir comment montrer les deux fenêtres quand je le sélectionne dans la barre des tâches.Problème d'interface utilisateur simple dans winforms

ChildWindow est aussi un WinForm, dont la propriété de premier niveau est défini comme vrai, en dehors de ce rien est nouveau (JUSTE EN CLIQUANT SUR UN BOUTON OU CELLULAIRE DANS GRID JE CRÉE UN OBJET DE FORME ET USAGES IT MONTRENT PROPRIETE SHOW)

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) 
     { } 
    }    

note: CECI EST ARRIVE SEULEMENT DANS WINDOWS2000

J'utilise un composant nommé Dotnetmagic.dll, je ne sais pas si elle cause la personne problem.can me aide à résoudre ce

+3

Je pense que cela dépendra un peu * comment * vous montrer la fenêtre enfant. Pouvez-vous partager un code montrant comment cela est fait? –

+2

Mettez à niveau la machine, cela ne vaut pas votre temps. Ou le nôtre. –

+0

Pourquoi le texte criard? – bruceboughton

Répondre

1
I replaced these lines 

_alertMsg.Location = PointToScreen (nouveau point (this.Width/4, -ce.Height));
Avec

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

et il a résolu mon problème