2009-12-06 4 views
2

Je ne veux pas que le texte de mon contrôle WebBrowser soit sélectionnable. Comment ferais-je cela?Interdire la sélection de texte dans .NET WebBrowser

+3

Pourquoi détestes-tu tes utilisateurs? –

+1

Eh bien, il peut ou ne peut pas détester son utilisateur. J'ai dû le faire quelques fois dans des visualisations où l'utilisateur déplace la souris pour manipuler des choses sur l'écran. Croyez-moi, l'utilisateur n'est pas content de mettre en évidence dans ce cas. – Nosredna

Répondre

1

C'est un peu une demande inhabituelle ...

Vous ne pouvez pas contrôler ce qui est sélectionné ou non dans le contrôle WebBrowser, sauf si vous voulez écrire un pour vous. Ce que vous pouvez faire est d'étirer une image DIV ou une image transparente directement au-dessus du contrôle webbrowser, donc toute tentative de mise en surbrillance est réellement faite sur l'élément le plus haut, pas sur le contrôle webbrowser.

+0

Est-ce vrai? Je sais qu'il y a deux ou trois façons de le faire dans Internet Explorer. Le contrôle WebBrowser est-il différent de IE? – Nosredna

4

Essayez ceci:

// deselects text in _current_ document 
private void Document_Uselect(object sender, HtmlElementEventArgs e) 
{ 
    MainWebBrowser.Document.ExecCommand("Unselect", true, null); 
} 

// if _current_ document changes - we need new handlers 
private void MainWebBrowser_Navigated(object sender, WebBrowserNavigatedEventArgs e) 
{ 
    MainWebBrowser.Document.Click += new HtmlElementEventHandler(Document_Uselect); 
    MainWebBrowser.Document.MouseMove += new HtmlElementEventHandler(Document_Uselect); 

} 
0

Bien que la question a été posée en 2009, toujours pas de réponse simple peut être trouvée dans Google oncle. Dans Visual Studio 2015, j'ai trouvé, après des expériences, la manière suivante de bloquer la sélection de texte dans un contrôle Webbrowser.

<body onselectstart="window.event.returnValue=false;"> 

Le même attribut peut être appliqué à n'importe quelle autre balise avec un égal succès.

En revanche, ni onselectstart = "return false", onselectstart = "function() {return false}", unselectable = "on", ni « -ms-user-select: aucun " en CSS a semblé fonctionner pour moi.

Questions connexes