J'avais aussi vu que le programme se plante, si l'on presse sur un bouton avant que les deux appareils ne soient connectés.
Mais je n'avais pas encore pris le temps de corriger.
La même chose se produit aussi si on déplace le curseur.
Je propose donc:
- d'agrandir le Panel pnlButtons
- de placer les deux Labels lblMotorSpeed0 et lblMotorSpeed ainsi que skbMotorSpeed sur pnlButtons.
- de placer un Panel, pnlHide semi-transparent et visible, au dessus de pnlButtons.
- d'ajouter un événement Click pour pnlHide, qui 'consomme les événements des Views situées derrière.
- d'ajouter pnlHide.Visible = False sous Status = "connected" et pnlHide.Visible = True sous Status = "disconnected".
Le fait de mettre pnlHide au dessus de pnlButtons avec une routine événement permet de laisser pnlButtons visible et de désactiver les événements des Views qui se trouvent derrière.
Dans ta proposition tu changes la propriété pnlButtons.Visible et aussi la proriété pnlButtons.Enabled.
Lorsqu'un View a été mise sur Visible = False il n'est pas nécessaire de mettre Enabled = False, car les événements pour une View invisible sont automatiquement désactivés.
Visible = False et Enabled = False n'a à mon avis pas de sens.
Mais, Visible = True et Enabled = False a un sens, celui de laisser la View visible mais de désactiver les événements.
C'est ce que je fais indirectement avec pnlHide.
Car pnlHide.Visible = True revient à mettre toutes les Views, qui se situent derrière, à Enabled = False, mais avec une seule View.
Ceci permet de voir les fonctions possibles, mais inactives.
En général, je préfère de ne mettre à disposition de l'utilisateur que les fonctions actices et de cacher celles qui ne sont pas disponibles en fonction de l'état dans lequel se trouve le programme.
Mais, dans ce cas ci, je préfère que l'utilsatateur voie ce qui est à disposition mais pas encore actif, sinon il pourrait se poser la question sur l'utilité du programme.
Ci-joint, une nouvelle version, je crois que j'y ai incorporé toutes tes suggestions.
Cordialement.
Klaus
Mais je n'avais pas encore pris le temps de corriger.
La même chose se produit aussi si on déplace le curseur.
Je propose donc:
- d'agrandir le Panel pnlButtons
- de placer les deux Labels lblMotorSpeed0 et lblMotorSpeed ainsi que skbMotorSpeed sur pnlButtons.
- de placer un Panel, pnlHide semi-transparent et visible, au dessus de pnlButtons.
- d'ajouter un événement Click pour pnlHide, qui 'consomme les événements des Views situées derrière.
- d'ajouter pnlHide.Visible = False sous Status = "connected" et pnlHide.Visible = True sous Status = "disconnected".
Le fait de mettre pnlHide au dessus de pnlButtons avec une routine événement permet de laisser pnlButtons visible et de désactiver les événements des Views qui se trouvent derrière.
Dans ta proposition tu changes la propriété pnlButtons.Visible et aussi la proriété pnlButtons.Enabled.
Lorsqu'un View a été mise sur Visible = False il n'est pas nécessaire de mettre Enabled = False, car les événements pour une View invisible sont automatiquement désactivés.
Visible = False et Enabled = False n'a à mon avis pas de sens.
Mais, Visible = True et Enabled = False a un sens, celui de laisser la View visible mais de désactiver les événements.
C'est ce que je fais indirectement avec pnlHide.
Car pnlHide.Visible = True revient à mettre toutes les Views, qui se situent derrière, à Enabled = False, mais avec une seule View.
Ceci permet de voir les fonctions possibles, mais inactives.
En général, je préfère de ne mettre à disposition de l'utilisateur que les fonctions actices et de cacher celles qui ne sont pas disponibles en fonction de l'état dans lequel se trouve le programme.
Mais, dans ce cas ci, je préfère que l'utilsatateur voie ce qui est à disposition mais pas encore actif, sinon il pourrait se poser la question sur l'utilité du programme.
Ci-joint, une nouvelle version, je crois que j'y ai incorporé toutes tes suggestions.
Cordialement.
Klaus