开发者

Assign shortcut key to report viewer toolbar buttons

How I can assign a shortcut key to report viewer toolbar button开发者_JAVA百科s ?

For Example assign F4 key for export as pdf button


For print I used this part of code in dialog where is ReportViewer control

protected override void OnKeyDown(KeyEventArgs e)
{
  base.OnKeyDown(e);

  if ((e.Key == Key.P) && (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl)))
    reportViewer.PrintDialog();
}

For export you can maybe use reportViewer.ExportDialog()


I just combine few solutions and achieved this solution.
put this code on your Form's Code that reportviewer is there.

public partial class frmReport : Form
    {
        public frmReportDevices()
        {
            InitializeComponent();
        }
        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            if (keyData == (Keys.Control | Keys.P))
            {
                rpt.PrintDialog();
            }
            if (keyData == (Keys.F2))
            {
                string _sSuggestedName = String.Empty;

                byte[] byteViewerPDF = rpt.LocalReport.Render("PDF");
                byte[] byteViewerExcel = rpt.LocalReport.Render("Excel");
                byte[] byteViewerWord = rpt.LocalReport.Render("Word");

                SaveFileDialog saveFileDialog1 = new SaveFileDialog();

                saveFileDialog1.Filter = "PDF files (.pdf)|.pdf| Doc files (.doc)|.doc| Excel files (.xls)|.xls";

                if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    FileStream newFile = new FileStream(saveFileDialog1.FileName, FileMode.Create);
                    if (saveFileDialog1.FilterIndex == 1)
                    {
                        newFile.Write(byteViewerPDF, 0, byteViewerPDF.Length);
                        newFile.Close();
                    }
                    else if (saveFileDialog1.FilterIndex == 2)
                    {
                        newFile.Write(byteViewerWord, 0, byteViewerWord.Length);
                        newFile.Close();
                    }
                    else if (saveFileDialog1.FilterIndex == 3)
                    {
                        newFile.Write(byteViewerExcel, 0, byteViewerExcel.Length);
                        newFile.Close();
                    }
                }
            }
            return base.ProcessCmdKey(ref msg, keyData);
        }
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜