How to disable right-clicking and keyboard shortcuts in PDFViewCtrl?

Q: I'm trying to embed PdfView into a Winforms application in order to
provide a restricted viewer for some sensitive documents. I'm using
the samples provided as a basis, but the PdfView that is shown always
has the right-click features and keyboard shortcuts activated. I want
to disable all of this so my users won't be able to save copies of the
file from the viewer, won't be able to print them and won't be able to
copy-paste content either. I don't want to fiddle with basic pdf
security (anyway it doesn't prevent saving copies) since some of the
files i'm displaying are already encrypted.

Is there a simple way to do that, I can't seem to find any decent
A: We released a new PDFNet SDK update (v.4.8 -
that includes some features that will allow you to customize
PDFViewCtrl based on your requirements.

Currently you can override context menus for built-in tools by
overriding OnMouseUp event. For example (in C#):

protected override void OnMouseUp(MouseEventArgs e) {
  // One way to override built-in content menu. Replace it with your
own menu?
  if (e.Button == MouseButtons.Right) {
  MenuItem menuItem = new MenuItem("Print");
  menuItem.Click += new EventHandler(OnPrint);
  ContextMenu popup = new ContextMenu();
  Rect wnd_pos = GetChildWindowPosition();
  popup.Show(this, new System.Drawing.Point(e.X+(int)wnd_pos.x1, e.Y+

Similarly you can override OnKeyUp, OnKeyDown, OnKeyPress and call
the base-class method if you would like to process specific types of
events by the base class.

The extended C# PDFView sample (
samplecode.html#PDFView) illustrates various customizations to the
built-in viewer.

Q: While I'm at it, I would also like to add a watermark, in case
someone decides to take a
print screen.
A: To add a watermark you can use ElementWriter and ElementBuilder as
shown in the following snippet:

using (ElementBuilder eb = new ElementBuilder()) {
using (ElementWriter writer = new ElementWriter() {
  Element element = eb.CreateTextBegin(Font.Create(doc,
  element = eb.CreateTextRun("Hello World!");
  // Position the text run
  element.SetTextMatrix(1, 0, 0, 1, 20, 20);
  writer.End(); // Save the changes

Please note that the procedure is the same as when creating PDF
content from scratch. For a longer code example, illustrating the use
of ElementBuilder and ElementWriter, please take a look at
ElementBuilder sample project.

If you would like to stamp PDF page(s) which are opened in the viewer,
you need to lock the document before modifying pages and Update() the
re-render the page. For example:


Q: When DoubleClick-ing on an annotation a popup window with a title
"StickyNote" comes out.
How can I disable this behavior in C#?
A: In PDFNet 4.8 and above you can add the following override in your
PDFViewCtrl derived class:

protected override void OnDoubleClick(EventArgs e) {
   // MessageBox.Show("Custom OnDoubleClick handler", "Test",