2010-06-25 8 views
4

J'ai un formulaire qui provient d'un complément Excel écrit avec VSTO. Je souhaite que le formulaire reste toujours au-dessus de la feuille de calcul Excel, tout en permettant à l'utilisateur d'interagir avec la feuille située en dessous.Windows Forms au-dessus d'Excel

Le constructeur de formulaires inclut this.TopLevel = true;, mais la forme disparaît toujours derrière la feuille de calcul lorsque je sélectionne une cellule.

Est-ce que quelqu'un d'autre a rencontré ce problème et a trouvé une solution de contournement?

Répondre

4

Une forme a déjà TopLevel définie sur true. Vous voulez TopMost.

P/Appeler SetParent() serait le meilleur, mais obtenir le handle de fenêtre dont vous avez besoin n'est peut-être pas si simple. Peut-être que Process.GetCurrentProcess(). MainWindowHandle

0

Si vous voulez avoir un formulaire interactif dans Excel, vous devrez faire quelques pinping comme Hans l'a dit dans la réponse originale. voir ce lien - on MSDN

Cet exemple concerne le contrôle refedit (qui n'est normalement disponible que depuis VBA). L'exemple devrait vous fournir les informations nécessaires sur IWin32Window et pinvoking pour appeler la méthode Show de l'objet formulaire avec cette valeur de paramètre.