【问题标题】:Benefits of a BrowserPanel?浏览器面板的好处?
【发布时间】:2012-05-09 23:56:07
【问题描述】:

我主要是 asp.NET MVC 开发人员,但我继承了一个 WinForms 应用程序来维护和增强。它的一个功能是一个报告窗口,它只是一个带有 BrowserPanel 控件的 WinForm,其中注入了许多尖括号和文本。该报告只是一组 HTML 表格。

我的“问题”是其中包含 BrowserPanel 的报告表单,由于是弹出表单,是模态的。我想我明白为什么最好不要尝试使其成为非模态 WinForm,但如果报告窗口可以在用户位于应用程序的其他部分时打开,那就太好了。

因此,当用户想要查看报告时,我是否可以将所有报告 HTML 发送到用户的浏览器,而不是使用 WinForm 中的 BrowserPanel,而不是使用此 WebForm/BrowserPanel 范例?或者这只是一个非常糟糕的主意?如果这是一个好主意,我该怎么做呢?

非常感谢您的宝贵时间。

【问题讨论】:

  • 我认为你可以做到非模态,所以/隐藏它只要你想。您还可以将其设置为始终显示在所有其他表单之上(我不记得以这种方式打开它的属性名称或参数,抱歉)。而且我不会采取另一种方式:第一,因为你可能不能,第二,因为它会因一个浏览器而异。在任何情况下,您都可以将 HTMl 保存到文件中,然后运行它,以便默认浏览器打开它。

标签: c# winforms winforms-to-web


【解决方案1】:

没有看到应用程序正常工作,我不确定这是一个好主意还是坏主意 - Winform 应用程序中的 WebBrowser 控件确实具有某些优点(和缺点)。做起来很简单,试一试,看看它是否是用户想要的——即使它最终成为一个程序设置:

//Save the HTML to a file
string fileName = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\a.html";
System.IO.StreamWriter file = new System.IO.StreamWriter(fileName);
file.WriteLine(htmlContent);
file.Close();

//Open the HTML file in the default browser
ProcessStartInfo start = new ProcessStartInfo();
start.FileName = fileName;
Process myProcess = Process.Start(start);

Form 属性 TopMost 将允许您拥有一个始终位于顶部的非模态窗口。

【讨论】:

    猜你喜欢
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-07
    • 2014-06-26
    • 2013-06-11
    • 2011-12-28
    • 1970-01-01
    相关资源
    最近更新 更多