nom de classe convivial Winform

J’ai une application Winform qui, lorsqu’elle est utilisée spy ++, donne “WindowsForms10.Window.8.app.0.33c0d9d” comme nom de classe. Y at-il un moyen de changer cela en quelque chose de plus convivial?

Il n’y a pas. Le dernier numéro hexadécimal est le code de hachage de l’AppDomain à qui appartient la fenêtre. Le chiffre avant commence à 0 mais augmente si d’autres fenêtres ont été créées avec le même nom de classe. Le nombre qui précède est la valeur du style de classe. Il est clair que vous ne pouvez deviner ce nom correctement que si vous avez une connaissance approfondie des variables dont la valeur n’est accessible que dans le processus.

Tu ne peux pas non plus le changer. Vous pouvez remplacer la propriété CreateParams de la fenêtre, mais la définition de la propriété ClassName obligera Windows Forms à rechercher une classe window existante portant ce nom. Et ne le trouvez pas, bombardez votre programme.

Vous ne pouvez pas non plus le remplacer. La logique est intégrée à une méthode privée de la classe NativeWindow. Clairement, cela n’a pas été conçu pour faciliter l’utilisation de FindWindowEx ().

Tant que le code source est une option, il existe de bien meilleurs moyens d’établir une communication inter-processus au-delà des messages Windows. Tubes nommés, sockets, Remoting, WCF.

Si vous avez besoin de noms conviviaux pour vos contrôles, utilisez les propriétés d’accessibilité. c’est la voie commune.