Ho un'applicazione C# winform che, se utilizzata con spy ++, fornisce "WindowsForms10.Window.8.app.0.33c0d9d" come nome classe. C'è un modo per cambiarlo in qualcosa di più amichevole?nome classe winform
risposta
se sono necessari nomi descrittivi per i controlli, utilizzare le proprietà Accesso facilitato. questo è il modo comune.
Non c'è. L'ultimo numero esadecimale è il codice hash dell'AppDomain proprietario della finestra. La cifra precedente inizia a 0 ma aumenta se altre finestre sono state create con lo stesso nome di classe. Il numero precedente è il valore dello stile della classe. Chiaramente puoi solo indovinare questo nome correttamente se hai una conoscenza privilegiata delle variabili il cui valore è accessibile solo all'interno del processo.
Né puoi cambiarlo. Sostituisci la proprietà CreateParams della finestra ma impostando la proprietà ClassName, Windows Form cerca una classe di finestre esistente con quel nome. E non riescono a trovarlo, bombardando il tuo programma.
Né è possibile ignorarlo. La logica è incorporata in un metodo privato della classe NativeWindow. Chiaramente questo non è stato progettato per rendere più facile l'utilizzo di FindWindowEx().
Fintanto che la modifica del codice sorgente è un'opzione, ci sono modi migliori per impostare una comunicazione tra processi oltre l'utilizzo dei messaggi di Windows. Tubi con nome, prese, Remoting, WCF.
- 1. classe di base generico per WinForm UserControl
- 2. Percorsi relativi in Winform
- 3. C# app.config in winform
- 4. Classi parziali WinForm
- 5. HTMLEncode in Winform
- 6. C# utilizzando i controlli Winform in un'altra classe
- 7. come accedere ai componenti winform da un'altra classe?
- 8. Cerca nome della classe parziale, pieno ritorno nome della classe
- 9. Nome classe molto lungo
- 10. Istanzia classe dal nome?
- 11. Ottieni il nome classe dalla classe estesa
- 12. Ottieni il nome classe dall'oggetto Classe
- 13. Uso C++ di classe Nome classe;
- 14. Implementazione MVVM per l'applicazione WinForm
- 15. "x" Per ridurre a icona WinForm, ContextMenu per chiudere WinForm?
- 16. Disposizione dei controlli su Winform
- 17. ottenere assembly per nome classe
- 18. Convenzione nome classe in java
- 19. Ignora nome classe per XmlSerialization
- 20. MENO Nome classe dinamica CSS
- 21. Nome classe Studio Android verde?
- 22. Winform senza framework .NET?
- 23. Elenco orizzontale winform listview
- 24. Cambia winform ToolTip backcolor
- 25. Prevenire l'ingrandimento di Winform?
- 26. Convalida UI WinForm
- 27. IDataErrorInfo in winform
- 28. C# Generics e Winform
- 29. Clone Winform control
- 30. MVP in Winform
Ho bisogno di un nome di classe più amichevole in modo da poterlo scoprire utilizzando FindWindowEx ... – user156144
quindi devi eseguire l'override di CreatePrams, ma se restituisci foo, genererà di nuovo quel nome ostile. – Jack