Aller au contenu

Evenement en vb.net


Messages recommandés

Posté(e)

Bonjour,

Je cherche la mise en oeuvre des événements dans autocad avec vb.net.

Dans le vba il y a deux types d'événements, l'événement retourné par le dessin et l'événement retourné par l'entité (objet). En grande partie les exemples connus en .net sont toujours rapportés au niveau du formulaire mais rien sur le clavier (barre d'espace, enter,...)rien sur les entités, rien sur le détournement des commandes, en bref pas grand chose.

Pour l'instant je voudrais créer une fonction en .net pour récupérer la "barre d'espace", "enter",et "clik droit" pour "quiter propre" mes routines qui sont elles, écritent en LISP ou VBA. (j'ai la procedure du transfert LISP-->.net .net-->LISP).

Je pens qu'il y a faire un véritable travail de fond sur le sujet car même dans le livre AutoCAD.net il y peu d'exemple (bien que sur le sujet le livre AutoCAD.net ne soit pas très éloquent je le recommande vivement pour tout débutant en .net sur autocad..

En attente d'un réponse

Cordialement

Posté(e)

Salut,

 

je ne suis pas sûr de comprendre ce que tu veux faire, mais s'il s'agit bien d'intercepter un clic droit, un Entrée ou Espace pour sortir d'une boucle GetPoint par exemple, il suffit d'autoriser aucune sélection (AllowNone = true) et de tester le PromptResult.

 

Un petit exemple avec GetEntity (en C#, désolé):

 

Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
PromptPointOptions ppo = new PromptPointOptions("\nSpécifiez un point: ");
ppo.AllowNone = true;
bool loop = true;
PromptPointResult ppr;
do
{
   ppr = ed.GetPoint(ppo);
   if (ppr.Status == PromptStatus.OK)
       ed.WriteMessage(ppr.Value.ToString());
   else if (ppr.Status == PromptStatus.None)
   {
       loop = false;
       ed.WriteMessage("\nValidation par Entrée, Espace ou clic droit");
   }
   else
       return;
} while (loop);

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Merçi pour ta réponse. Je vois tout de suite qu'il faut que j'externalise la commande en .net. De toute façon je pense que pour intercepter l'événement "clavier" il faut rester dans la couche LISP si la procédure a démarrer en LISP. Je voulais m'initier en .net avec les événements.car les exemples ne sont pas très fréquents. Les évenements en VBA sont très documentés et très façile à mettre en oeuvre.

Je suis seul sur un developpement personnel tèrs lourd, voire trop surement. 65000 lignes en LISP et 15000 en VBA à transformer en .net et continuer à developper le produit pour une commercialisation 2010, c'est très compromis.

Merci encore

 

Posté(e)

Bonjour,

 

Pour récupérer une entrée clavier, tu peux également utiliser la fonction suivante:

 

     Public Function GetAsyncKeyState(ByVal vkey As Integer) As Short
   End Function 

 

J'ai essayé et ça marche de la même façon qu'en vba.

 

_______________________________

R.A.

Développeur AutoCAD C#.net

www.danialu.fr

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité