2012-05-09 4 views
1

私は主にasp.NET MVC開発者ですが、私はWinFormsアプリケーションを継承して強化しました。その機能の1つは、多くの角括弧とテキストが挿入されたBrowserPanelコントロールを持つWinFormのレポートウィンドウです。レポートは単なるHTMLテーブルのセットです。BrowserPanelのメリット

私の「問題」は、ポップアップフォームであるため、その中のBrowserPanelを持つレポートフォームがモーダルであるということです。私はそれが非モーダルWinFormにならないようにするのが最善である理由を理解していると思いますが、ユーザーがアプリケーションの他の部分にいる間にレポートウィンドウを開くことができればいいと思います。

このWebForm/BrowserPanelパラダイムを使用する代わりに、レポートを表示する場合は、WinFormでBrowserPanelを使用する代わりに、すべてのレポートHTMLをユーザーのブラウザに送信できますか?それとも本当に悪い考えですか?それが大丈夫だとすれば、どうすればそのようなことができますか?

お時間をありがとうございました。

+1

私はモーダルではないことができると思いますし、いつでもそれを隠すことができます。他のすべてのフォームの上に常に表示されるように設定することもできます(このようにプロパティ名またはパラメータを開くことはできません)。そして、私は別の方法を取らないだろう:第一に、あなたはおそらく、第二に、ブラウザごとに違うので、第二にすることはできない。いずれにしても、HTMlをファイルに保存して実行すると、デフォルトのブラウザで開くことができます。 – JotaBe

答えて

1

アプリケーションが動作していないと、WinformアプリケーションのWebBrowserコントロールに特定のプロ(およびcon)があるかどうかわかりません。 、それを行うに行くを与えると、そのユーザーが何をしたいかどうかを確認するためにそう簡単なことです - そのプログラムの設定として終わる場合でも:

//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); 

フォームプロパティTopMostのは、あなたが非モーダルを持つことができるようになります常に上にあるウィンドウ。

関連する問題