2016-03-28 4 views
0

Я хочу защитить PDF в PdfViewer DevExpress, запретить пользователю печатать, сохранять как и пользователь просто может просматривать только. Я создал простой проект и хорошо работает, но когда пользователь нажимает Ctrl + P, пользователь все равно может распечатать этот файл. Кто-нибудь предлагает решить эту проблему?Отключить контрольную печать (Ctrl + P) в Pdf Viewer Devexpress Winform

Это изображение, которое я придаю, и я не хочу пользователей показать это, и когда пользователь нажимает кнопку Ctrl + P они будут выглядеть, что этот документ PDF защищен:

Print

Стараюсь этот код в Key_Down случае PdfViewer:

private void pdfViewer1_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.Control && e.KeyCode == Keys.P) //detect key ctrl+p 
    { 
     e.Handled = false; 
     MessageBox.Show("This Document is Protected !", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); 
     return; 
    } 
    base.OnKeyDown(e); 
} 

это не работает.

+0

'если ((e.Control && e.KeyCode == Keys.C) || (e.Control && e.KeyCode == Keys.A)) {' ​​вы имеете в виду это? – MichaelMao

+0

@MichaelMao так извините, я обновил свое объяснение – aminvincent

ответ

1

Если вы хотите, чтобы ваш PdfViewer не получил Ctrl + P, тогда вы должны использовать KeyEventArgs.SuppressKeyPress. Вот пример:

private void pdfViewer1_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.Control && e.KeyCode == Keys.P) //detect key ctrl+p 
    { 
     e.SuppressKeyPress = true; //<= Set it to true. 
     MessageBox.Show("This Document is Protected !", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); 
     return; 
    }   
} 
+0

ваш предлагаемый код выше не работает, .. я его протестировал, и диалог печати все еще отображается при нажатии ctrl + p ... любым другим способом? – aminvincent

+0

@aminvincent Я тоже проверил. И это работает на моей стороне. Кажется, что 'Ctrl + P' обрабатывается другим элементом управления в вашей форме. Например, на нем могут быть «Лента» или «Панель» с кнопкой «Печать». Если это так, вам нужно удалить из него кнопку «Печать». – nempoBu4

+0

точно я прочитал pdf-файл из окопа данных blob и прочитал его с помощью 'MemoryStream'. Я удаляю свою кнопку, печатаю, открываю и сохраняю как с моей панели ленты. Я снова тестировал, и он не работает. возможно, это из-за 'MemoryStream'? – aminvincent