J'ai développé un Outlook ajouter (volet des tâches personnalisées), avec un navigateur Web dans le contrôle de l'utilisateur. Tout ce qui fonctionne bien à côté de l'espace arrière ou le bouton de suppression lorsque j'écris quelque chose dans la zone de texte dans le navigateur Web, je ne peux pas utiliser ces touches, ai-je raté quelque chose?Outlook ajouter, zone de texte, supprimer backspace ne fonctionne pas
Répondre
Ok je résolu le problème,
Le problème est que le volet de tâches personnalisé en obtient pas toujours fucos des perspectives. Donc, j'ai soulevé un événement chaque fois qu'il y a "onclick" pour tout le volet, puis j'ai forcé le focus sur le volet.
Il s'avère que c'est un problème facile à résoudre.
Il suffit d'écrire
class MyBrowser : WebBrowser {}
Ensuite, utilisez mybrowser au lieu du .NET un.
Cela n'a pas fonctionné pour moi. – GreenKiwi
C'est bizarre. J'ai essayé cette approche plusieurs fois juste pour être sûr. Cela n'a absolument aucun sens et ne l'est toujours pas. –
J'ai quelques années de retard à la fête mais j'ai réussi à résoudre ce problème. Le moyen le plus simple de résoudre ce problème est de veiller à ce que les champs de saisie soient correctement mis en évidence. Vous devrez donc être en mesure d'exécuter votre propre javascript sur n'importe quelle page chargée.
Le javascript je cours sur la page est la suivante (en utilisant jQuery):
$(document).on("click", function (e) {
// first let the add-in give focus to our CustomTaskPane
window.external.focus();
// then in our web browser give focus to whatever element was clicked on
$(e.target).focus();
});
la variable window.external contient l'exécution de code du plug-in (C# ou VB je suppose) qui est exposée afin que nous puissions interagir à partir de la page Web vers le complément.
En complément du code pour la coutume TaskPane défini le contexte de window.external:
// event when webBrowser is finished loading document
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
// sets context of window.external to functions defined on this context
webBrowser1.ObjectForScripting = this;
}
Et une méthode publique pour mise au point:
// can be called by the web browser as window.external.focus()
public void focus()
{
this.Focus();
}
Cela a fonctionné pour moi, et je J'espère que ça aide les autres. Bien que notez que cela ne fonctionne probablement pas si le clavier de l'utilisateur navigue à l'aide de la tabulation, mais vous pouvez étendre ce code pour ce cas d'utilisation ou supposer que l'utilisateur moyen aura sa main collée à la souris.
Comment avez-vous fait cela exactement? Pouvez-vous poster du code? J'ai le même problème mais rien ne m'aide. – wpfwannabe
Pourriez-vous s'il vous plaît mettre à jour votre réponse avec un code? – Neophile