2017-02-13 23 views
0

При закрытии формы, содержащей элемент управления WebBrowser с открытием документа Pdf в веб-браузере, форма занимает около 10 секунд для закрытия. Я отследил проблему до метода Dispose веб-браузера.C# webbrowser viewer control занимает время, чтобы распоряжаться

private void advBandedGridView1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e) 
    { 
     if (advBandedGridView1.GetFocusedDataRow() != null) 
     { 
      string wordno = advBandedGridView1.GetFocusedDataRow()["wordno"].ToString(); 
      string itemcd = advBandedGridView1.GetFocusedDataRow()["itemcd"].ToString(); 

      for (int i = 0; i < _caseCount; i++) 
      { 
       ButtonColoring(wordno, _seqkindCode[i]); 
      } 

      LoadPDF(itemcd); 

      gridControl2.DataSource = null; 
      gridControl2.RefreshDataSource(); 
     } 
    } 

Контроль событий

private void LoadPDF(string itemcd) 
    { 
     try 
     { 
      ReturnPacket rp; 

      rp = new Q3i.POP.BIZ.Common.CommonCode().SelectCommonCodeFull("603", "kind3 = 'EYE'", false); 

      if (rp.DataTables.Count > 0 && rp.DataTables[0].Rows.Count == 0) 
      { 
       rp = new Q3i.POP.BIZ.Common.CommonCode().SelectCommonCodeFull("603", "kind3 = '1'", false); 
      } 

      if (rp.DataTables[0].Rows.Count > 0) 
      { 
       string dockind = string.Empty; 
       dockind = rp.DataTables[0].Rows[0]["code"].ToString(); 

       ParameterCollection paramCol = new ParameterCollection(); 
       paramCol.Add("p_itemcd", itemcd); 
       paramCol.Add("p_dockind", dockind); 
       PdfFileInfo temp_fileInfo = biz.SelectInspectionStandards(paramCol); 

       if (temp_fileInfo != null) 
       { 
        if (_fileInfo != null && temp_fileInfo.FileNm == _fileInfo.FileNm) 
        { 
         WebBrowserPdf.Visible = true; 
         return; 
        } 

        _fileInfo = null; 
        _fileInfo = temp_fileInfo; 

        PDF_FILE_PATH = FilePath + _fileInfo.FileNm; 

        DirectoryInfo di = new DirectoryInfo(FilePath); 
        if (di.Exists == false) 
        { 
         di.Create(); 
        } 

        if (!File.Exists(PDF_FILE_PATH)) 
         File.WriteAllBytes(PDF_FILE_PATH, _fileInfo.FileData); 

        if (!PDF_FILES.Contains(PDF_FILE_PATH)) 
        { 
         PDF_FILES.Add(PDF_FILE_PATH); 
        } 

        WebBrowserPdf.Navigate(PDF_FILE_PATH + "?#zoom=" + _zoomFactor + "%", false); 

        WebBrowserPdf.Visible = true; 
        simpleButtonOpenPOPUP.Enabled = true;       
       } 
       else 
       { 
        WebBrowserPdf.Visible = false; 
        simpleButtonOpenPOPUP.Enabled = false; 
       } 
      } 
     } 
     catch (Exception ex) 
     { 
      UCXtraMsgBox.ShowDialog(ex.Message, "m0146", Q3i.Common.Enums.MsgBoxButton.OK, Q3i.Common.Enums.MsgBoxIcon.Alert, true); 
     } 
    } 

это метод Load

private void w_pcmu081_FormClosing(object sender, FormClosingEventArgs e) 
    { 
     try 
     { 
      WebBrowserPdf.Dispose(); 

      Process[] Pro = Process.GetProcessesByName("osk"); 
      if (Pro.GetLength(0) > 0) 
       Pro[0].Kill(); 
     } 
     catch(Exception ex) 
     { 
      UCXtraMsgBox.ShowDialog(ex.Message, "m0146", Q3i.Common.Enums.MsgBoxButton.OK, Q3i.Common.Enums.MsgBoxIcon.Info, true, null, true); 
     } 
    } 

Закрытие

+0

Вы пробовали утилизации 'WebBrowser1'? –

+0

Я пробовал два метода. WebBrowser.Dispose (true) и Form Close() –

+0

Поместите 'WebBroswer.Dispose' внутри обработчика событий Form1_FormClosing. –

ответ

0

Та же ситуация со мной случилось.
Adobe сделала что-то неправильно в последней версии Acrobat Reader DC (15.023.20056).

Если вы снимете опцию Включите защищенный режим при запуске в разделе «Редактирование» -> «Настройки» -> «Безопасность» (Enhanced), все вернется в нормальное состояние.

На моем случае это не решение.

Больше информации здесь: https://forums.adobe.com/thread/2267688

 Смежные вопросы

  • Нет связанных вопросов^_^