Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pb Show entre applications

6 réponses
Avatar
d
Bonjour,

Voici mon pb: J'ai 2 applications (exe) et un serveur OPC pour échanger
des données entre elles.
Il y a une application principale (P1) et une application secondaire (P2).

Dans P1, il y a 2 btns ShowP2() et HideP2() qui font apparaître ou
disparaître P2.

ShowP2() lance une action au travers du serveur OPC qui active une fonction
ShowApplication() situé dans P2 et qui contient
this.Show(); et this.bringtofront();

Si une fenêtre apparaît malencontreusement devant P2, la fonction ShowP2()
ne fait pas apparaître P2. Alors que si la fenêtre P2 était active, les
fonctions ShowP2() et HideP2() fonctionnent correctement.

Quelqu'un peut-il m'aider?

David L

6 réponses

Avatar
Gilles TOURREAU
Le Mon, 24 Sep 2007 12:25:28 +0200, a écrit:

Bonjour,

Voici mon pb: J'ai 2 applications (exe) et un serveur OPC pour
échanger
des données entre elles.
Il y a une application principale (P1) et une application secondaire
(P2).

Dans P1, il y a 2 btns ShowP2() et HideP2() qui font apparaître ou
disparaître P2.

ShowP2() lance une action au travers du serveur OPC qui active une
fonction
ShowApplication() situé dans P2 et qui contient
this.Show(); et this.bringtofront();

Si une fenêtre apparaît malencontreusement devant P2, la fonction
ShowP2()
ne fait pas apparaître P2. Alors que si la fenêtre P2 était active, les
fonctions ShowP2() et HideP2() fonctionnent correctement.

Quelqu'un peut-il m'aider?

David L





D'abord est-ce que vos 2 applications sont compilées en .NET ?
Où se trouvent P1 et P2 ? Sur le serveur ? Sur le client ?

Quand vous dites : "ShowP2() lance une action au travers du serveur OPC
qui active une fonction..." quelle technologie est utilisée pour lancer
cette action ?

Pouvez-vous publier le code de ShowApplication() ?

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
d
Les 2 applications sont en C# et ont été créées avec VS2005.
Les 2 applications fonctionnent sur le même PC, l'OPC serveur est juste une
interface qui permet de dialoguer entre elles et avec l'automate logiciel.
Pour la question: Quand vous dites : "ShowP2() lance une action au travers
du serveur OPC
qui active une fonction..." quelle technologie est utilisée pour lancer
cette action ?


P1 active 1bit situé dans l'OPC. P2 a une fonction OnReceive qui lorsqu'un
changement intervient sur un groupe de bits est activée. Ce qui fait que
lorsque P1 donne l'ordre de faire un ShowP2(), P2 fait un ShowApplication().

public void ShowApplication()
{
this.Show();
this.BringToFront();
}

Voilà.
Merci.


"Gilles TOURREAU" a écrit dans le message de
news:
Le Mon, 24 Sep 2007 12:25:28 +0200, a écrit:

> Bonjour,
>
> Voici mon pb: J'ai 2 applications (exe) et un serveur OPC pour
> échanger
> des données entre elles.
> Il y a une application principale (P1) et une application secondaire
> (P2).
>
> Dans P1, il y a 2 btns ShowP2() et HideP2() qui font apparaître ou
> disparaître P2.
>
> ShowP2() lance une action au travers du serveur OPC qui active une
> fonction
> ShowApplication() situé dans P2 et qui contient
> this.Show(); et this.bringtofront();
>
> Si une fenêtre apparaît malencontreusement devant P2, la fonction
> ShowP2()
> ne fait pas apparaître P2. Alors que si la fenêtre P2 était active, les
> fonctions ShowP2() et HideP2() fonctionnent correctement.
>
> Quelqu'un peut-il m'aider?
>
> David L
>
>

D'abord est-ce que vos 2 applications sont compilées en .NET ?
Où se trouvent P1 et P2 ? Sur le serveur ? Sur le client ?

Quand vous dites : "ShowP2() lance une action au travers du serveur OPC
qui active une fonction..." quelle technologie est utilisée pour lancer
cette action ?

Pouvez-vous publier le code de ShowApplication() ?

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr


Avatar
Gilles TOURREAU
Le Mon, 24 Sep 2007 15:12:17 +0200, a écrit:

Les 2 applications sont en C# et ont été créées avec VS2005.
Les 2 applications fonctionnent sur le même PC, l'OPC serveur est juste
une
interface qui permet de dialoguer entre elles et avec l'automate
logiciel.
Pour la question: Quand vous dites : "ShowP2() lance une action au
travers
du serveur OPC
qui active une fonction..." quelle technologie est utilisée pour lancer
cette action ?


P1 active 1bit situé dans l'OPC. P2 a une fonction OnReceive qui
lorsqu'un
changement intervient sur un groupe de bits est activée. Ce qui fait que
lorsque P1 donne l'ordre de faire un ShowP2(), P2 fait un
ShowApplication().

public void ShowApplication()
{
this.Show();
this.BringToFront();
}

Voilà.
Merci.


"Gilles TOURREAU" a écrit dans le message de
news:
Le Mon, 24 Sep 2007 12:25:28 +0200, a écrit:

> Bonjour,
>
> Voici mon pb: J'ai 2 applications (exe) et un serveur OPC pour
> échanger
> des données entre elles.
> Il y a une application principale (P1) et une application secondaire
> (P2).
>
> Dans P1, il y a 2 btns ShowP2() et HideP2() qui font apparaître ou
> disparaître P2.
>
> ShowP2() lance une action au travers du serveur OPC qui active une
> fonction
> ShowApplication() situé dans P2 et qui contient
> this.Show(); et this.bringtofront();
>
> Si une fenêtre apparaît malencontreusement devant P2, la fonction
> ShowP2()
> ne fait pas apparaître P2. Alors que si la fenêtre P2 était active,
les
> fonctions ShowP2() et HideP2() fonctionnent correctement.
>
> Quelqu'un peut-il m'aider?
>
> David L
>
>

D'abord est-ce que vos 2 applications sont compilées en .NET ?
Où se trouvent P1 et P2 ? Sur le serveur ? Sur le client ?

Quand vous dites : "ShowP2() lance une action au travers du serveur OPC
qui active une fonction..." quelle technologie est utilisée pour lancer
cette action ?

Pouvez-vous publier le code de ShowApplication() ?

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr







Ok,

Votre problème provient très certainement de l'événement OnReceive() de P2
qui n'est pas déclenché.

Avez vous un moyen de contrôler le déclenchement de cet événement ?

Aussi dernière précision :
Lorsque vous dites : "Si une fenêtre apparaît malencontreusement devant
P2, la fonction ShowP2() ne fait pas apparaître P2." vous confirmez que la
fenêtre de P2 n'est pas iconifiée, derrière la fenêtre Lambda,...etc.

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
d
L'action est bien déclenché puisque je rentre dans la fonction
ShowApplication de P2.

J'ai testé en ajoutant dans ShowApplication() this.TopMost.

public void ShowApplication()
{
this.Show();
this.BringToFront();
this.TopMost = true;
this.TopMost = false;
}

Maintenant, ça fonctionne correctement.Avec n'importe quelle application
devant P2, celle-ci réapparaît devant lorsque je fait un ShowApplication.

Est-ce un Pb de Focus sur la Forme??

David L.

"Gilles TOURREAU" a écrit dans le message de
news:
Le Mon, 24 Sep 2007 15:12:17 +0200, a écrit:

> Les 2 applications sont en C# et ont été créées avec VS2005.
> Les 2 applications fonctionnent sur le même PC, l'OPC serveur est juste
> une
> interface qui permet de dialoguer entre elles et avec l'automate
> logiciel.
> Pour la question: Quand vous dites : "ShowP2() lance une action au
> travers
> du serveur OPC
>> qui active une fonction..." quelle technologie est utilisée pour lancer
>> cette action ?
> P1 active 1bit situé dans l'OPC. P2 a une fonction OnReceive qui
> lorsqu'un
> changement intervient sur un groupe de bits est activée. Ce qui fait que
> lorsque P1 donne l'ordre de faire un ShowP2(), P2 fait un
> ShowApplication().
>
> public void ShowApplication()
> {
> this.Show();
> this.BringToFront();
> }
>
> Voilà.
> Merci.
>
>
> "Gilles TOURREAU" a écrit dans le message de
> news:
>> Le Mon, 24 Sep 2007 12:25:28 +0200, a écrit:
>>
>> > Bonjour,
>> >
>> > Voici mon pb: J'ai 2 applications (exe) et un serveur OPC pour
>> > échanger
>> > des données entre elles.
>> > Il y a une application principale (P1) et une application secondaire
>> > (P2).
>> >
>> > Dans P1, il y a 2 btns ShowP2() et HideP2() qui font apparaître ou
>> > disparaître P2.
>> >
>> > ShowP2() lance une action au travers du serveur OPC qui active une
>> > fonction
>> > ShowApplication() situé dans P2 et qui contient
>> > this.Show(); et this.bringtofront();
>> >
>> > Si une fenêtre apparaît malencontreusement devant P2, la fonction
>> > ShowP2()
>> > ne fait pas apparaître P2. Alors que si la fenêtre P2 était active,
>> les
>> > fonctions ShowP2() et HideP2() fonctionnent correctement.
>> >
>> > Quelqu'un peut-il m'aider?
>> >
>> > David L
>> >
>> >
>>
>> D'abord est-ce que vos 2 applications sont compilées en .NET ?
>> Où se trouvent P1 et P2 ? Sur le serveur ? Sur le client ?
>>
>> Quand vous dites : "ShowP2() lance une action au travers du serveur OPC
>> qui active une fonction..." quelle technologie est utilisée pour lancer
>> cette action ?
>>
>> Pouvez-vous publier le code de ShowApplication() ?
>>
>> Cordialement
>>
>> --
>> Gilles TOURREAU
>>
>>
>> S.A.R.L. P.O.S
>> Le spécialiste en motoculture depuis + de 30 ans !
>> http://www.pos.fr
>
>

Ok,

Votre problème provient très certainement de l'événement OnReceive() de P2
qui n'est pas déclenché.

Avez vous un moyen de contrôler le déclenchement de cet événement ?

Aussi dernière précision :
Lorsque vous dites : "Si une fenêtre apparaît malencontreusement devant
P2, la fonction ShowP2() ne fait pas apparaître P2." vous confirmez que la
fenêtre de P2 n'est pas iconifiée, derrière la fenêtre Lambda,...etc.

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr


Avatar
Gilles TOURREAU
Le Mon, 24 Sep 2007 17:21:57 +0200, a écrit:

L'action est bien déclenché puisque je rentre dans la fonction
ShowApplication de P2.

J'ai testé en ajoutant dans ShowApplication() this.TopMost.

public void ShowApplication()
{
this.Show();
this.BringToFront();
this.TopMost = true;
this.TopMost = false;
}

Maintenant, ça fonctionne correctement.Avec n'importe quelle application
devant P2, celle-ci réapparaît devant lorsque je fait un ShowApplication.

Est-ce un Pb de Focus sur la Forme??

David L.




Oui...

Vous devez avoir le focus pour que votre Form apparait au premier plan a
moins d'utiliser TopMost...

Cordialement
--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
Gilles TOURREAU
Le Mon, 24 Sep 2007 17:21:57 +0200, a écrit:

L'action est bien déclenché puisque je rentre dans la fonction
ShowApplication de P2.

J'ai testé en ajoutant dans ShowApplication() this.TopMost.

public void ShowApplication()
{
this.Show();
this.BringToFront();
this.TopMost = true;
this.TopMost = false;
}

Maintenant, ça fonctionne correctement.Avec n'importe quelle application
devant P2, celle-ci réapparaît devant lorsque je fait un ShowApplication.

Est-ce un Pb de Focus sur la Forme??

David L.




Il me semble qu'un simple

this.Show();
this.Activate();

Suffit pour afficher la Form au dessus des autres....

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr