2017-06-09 5 views
0

達成しようとしているものが可能かどうかわかりませんが、CefSharp winformsでカスタムダウンロードバーを作成しようとしています。CEFSharpハンドフォームからのフォームのコントロールを呼び出す

私はファイルをダウンロードした後に表示させたい私のメインフォームのコントロールを作成しました。問題は私がDownloadHandlerからフォームを参照できないことです。

私はフォームの新しいインスタンスを作成する場合、私はしたくない新しい空のフォームを開きます。

ここは私のコードです。

+0

イベント「OnDownloadUpdatedFired」はどこに登録されていますか? – Abhishek

答えて

0

多くのグーグルの後、あなたのコードにこれを追加しました。私はこれが正しいと思います。それが助けてくれることを望みますか、少なくともあなたにスタートを与えてくれるでしょうか?

DownloadHandler downer = new DownloadHandler(this); 
browser.DownloadHandler = downer; 
downer.OnBeforeDownloadFired += OnBeforeDownloadFired; 
downer.OnDownloadUpdatedFired += OnDownloadUpdatedFired; 

private void OnBeforeDownloadFired(object sender, DownloadItem e) 
{ 
    this.UpdateDownloadAction("OnBeforeDownload", e); 
} 

private void OnDownloadUpdatedFired(object sender, DownloadItem e) 
{ 
    this.UpdateDownloadAction("OnDownloadUpdated", e); 
} 

private void UpdateDownloadAction(string downloadAction, DownloadItem downloadItem) 
{ 
    /* 
    this.Dispatcher.Invoke(() => 
    { 
     var viewModel = (BrowserTabViewModel)this.DataContext; 
     viewModel.LastDownloadAction = downloadAction; 
     viewModel.DownloadItem = downloadItem; 
    }); 
    */ 
} 

// ... 

public class DownloadHandler : IDownloadHandler 
{ 
    public event EventHandler<DownloadItem> OnBeforeDownloadFired; 

    public event EventHandler<DownloadItem> OnDownloadUpdatedFired; 

    MainForm mainForm; 

    public DownloadHandler(MainForm form) 
    { 
     mainForm = form; 
    } 

// ... 
+0

これは、ダウンロードリンクがターゲット "_blank"を持っていた場合、ファイル(例:.mobi電子ブック)をダウンロードする際の厄介な問題を解決するのに役立ちました。 ターゲットがない場合、ダウンロードダイアログが表示されました。 _blankターゲットでは、ポップアップウィンドウを非表示にしてブラウザで新しいカスタムタブを開く必要がありましたが、このときにダウンロードダイアログは表示されませんでした。 –

関連する問題