Laden...

WebBrowser Control = disabled?

Erstellt von Fotograf vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.523 Views
F
Fotograf Themenstarter:in
6 Beiträge seit 2008
vor 16 Jahren
WebBrowser Control = disabled?

Hey,

ich möchte gerne mit dem Webbrowser Control unter anderem .doc und .xls Dokumente (natürlich auch .jpg etc.) in meiner C# Anwendung anzeigen. Dies klappt auch soweit gut.

Allerdings soll das WebBrowser Control nur als Viewer nutzen (also read only sein). Es soll nicht möglich sein, diese Dokumente zu editieren o. ä.

Optimal wäre es, wenn es möglich wäre jegliche Eingabe zu unterbinden. Also das man z. B. kein Text in einem Word-Dokument tippen kann oder per Context Menü etwas in eine Zeile in einem Excel-Dokument einfügt.

Hat jemand eine Idee?

Vielen dank schonmal im Voraus.

420 Beiträge seit 2007
vor 16 Jahren

Hallo Fotograf,

also zum Abfangen der Tastatureingaben müsste folgendes funktionieren:


private void WebBrowser1_KeyPress(object sender, KeyPressEventArgs e)
{
    e.Handled = true;
}

Versuch das mal.

Gruß Dennis

F
Fotograf Themenstarter:in
6 Beiträge seit 2008
vor 16 Jahren

nach langem probieren habe ich bisher noch keine Lösung gefunden. Das OnKeyPress Event des Webbrowser Conrols ist leider eine geschützte Methode, an welcher man nicht rankommt.

hat vllt jemand eine andere Lösung?

Gelöschter Account
vor 16 Jahren

versuch mal zu erben und dann dort das event einfach abzufertigen...

F
Fotograf Themenstarter:in
6 Beiträge seit 2008
vor 16 Jahren

Wenn die Methode nicht private wäre sicherlich eine gute Idee...

es wäre am schönsten wenn es möglich wäre folgendes zu schreiben: webBrowser1.readonly = true;
aber das kennt das WebBrowser Control leider nicht...

ich verzweifel 😉

Gelöschter Account
vor 16 Jahren

bau dir das webbrowsercontrol mit reflection nach jedoch ohne die entsprechende methode ^^

ps: kann man mit new auch private-methoden überschreiben?
hab sowas noch nie versucht....

F
Fotograf Themenstarter:in
6 Beiträge seit 2008
vor 16 Jahren

private-methoden kann man leider nicht überschreiben...

meine nächste Idee wäre gewesen, alle Dokumente vorher in PDF umzuwandeln, sodass der User hier keine Änderungen vornehmen kann. Allerdings mangelt es an einer freien Möglichkeit .doc, .xls, etc. nach PDF umzuwandeln...

Gelöschter Account
vor 16 Jahren

ich weiß eine möglichkeit.

erstell ein usercontrol.
setzt den browser rein.
stell die eigenschaft enabled des usercontrols auf false.
und dann zeige das usercontrol an.

F
Fotograf Themenstarter:in
6 Beiträge seit 2008
vor 16 Jahren

Das war mein erster Versuch 😁

ich habe eine Groupbox genommen, diese auf enabled = false gesetzt. Natürlich waren dann keien Angaben mehr bei z. B. dem Word Dokument mehr möglich, allerdings konnte man auch nicht mehr innerhalb des Dokumentes scrollen. Der User konnte somit nur einen Ausschnitt des Dokumentes sehen.

Gelöschter Account
vor 16 Jahren

ok dann anders. das usercontrol wie oben beschrieben, jedoch machst du den scroll balken des browsers auf false.

dann erzeugst du noch ein usercontrol.
setzt das usercontrol mit dem webbrowser rein.
stellst das teil auf enabled = false.
machst noch die scrollbalken (nicht die vom browser) hinzu (also eigene).
und behandelst die ensprechenden events der scrollbalken in denen du eine art weiterleitung and den browser-control machst.

S
142 Beiträge seit 2007
vor 16 Jahren

Das OnKeyPress Event des Webbrowser Conrols ist leider eine geschützte Methode, an welcher man nicht rankommt.

Hallo Fotograf,

könntest du das Problem nicht mit einem Key-Event des Forms mit einer vorherigen Abfrage ob das WebBrowser Control das fokusierte Control ist umgehen?

Mfg Steav