WebBrowser 的 ShowPrintPreviewDialog() 不显示
WebBrowser's ShowPrintPreviewDialog() does not show up
我有一个 winforms 应用程序,我想通过 System.Windows.Forms.WebBrowser
控件显示打印预览。
这是我的帮手class:
using System;
using System.Windows.Forms;
namespace Hobbysta.App.Controls.Print
{
public class PrintingContent
{
private readonly string htmlContent;
public PrintingContent(string htmlContent)
{
this.htmlContent = htmlContent;
}
public void ShowPreview()
{
ExecuteBrowserAction(b => b.ShowPrintPreviewDialog());
}
private void ExecuteBrowserAction(Action<WebBrowser> action)
{
var browser = new WebBrowser();
browser.DocumentCompleted += (_, __) =>
{
action(browser);
browser.Dispose();
};
browser.DocumentText = htmlContent;
}
}
}
我从带有按钮的表单中调用它:
private void button1_Click(object sender, EventArgs e)
{
var result = new PrintingContent("TEST PRINT");
result.ShowPreview();
}
因此,创建了新的 window,我可以在选项卡上看到它,但无论如何都无法显示。点击缩图没有任何反应。
我在这里错过了什么?
它不起作用,因为你已经处理掉了它。注释掉(删除):
browser.Dispose();
private void ExecuteBrowserAction(Action<WebBrowser> action)
{
var browser = new WebBrowser();
browser.DocumentCompleted += (_, __) =>
{
action(browser);
//browser.Dispose();
};
browser.DocumentText = htmlContent;
}
我有一个 winforms 应用程序,我想通过 System.Windows.Forms.WebBrowser
控件显示打印预览。
这是我的帮手class:
using System;
using System.Windows.Forms;
namespace Hobbysta.App.Controls.Print
{
public class PrintingContent
{
private readonly string htmlContent;
public PrintingContent(string htmlContent)
{
this.htmlContent = htmlContent;
}
public void ShowPreview()
{
ExecuteBrowserAction(b => b.ShowPrintPreviewDialog());
}
private void ExecuteBrowserAction(Action<WebBrowser> action)
{
var browser = new WebBrowser();
browser.DocumentCompleted += (_, __) =>
{
action(browser);
browser.Dispose();
};
browser.DocumentText = htmlContent;
}
}
}
我从带有按钮的表单中调用它:
private void button1_Click(object sender, EventArgs e)
{
var result = new PrintingContent("TEST PRINT");
result.ShowPreview();
}
因此,创建了新的 window,我可以在选项卡上看到它,但无论如何都无法显示。点击缩图没有任何反应。
我在这里错过了什么?
它不起作用,因为你已经处理掉了它。注释掉(删除):
browser.Dispose();
private void ExecuteBrowserAction(Action<WebBrowser> action)
{
var browser = new WebBrowser();
browser.DocumentCompleted += (_, __) =>
{
action(browser);
//browser.Dispose();
};
browser.DocumentText = htmlContent;
}