1

私は主に asp.NET MVC 開発者ですが、WinForms アプリを継承して維持および拡張しています。その機能の 1 つは、多くの山かっことテキストが挿入される BrowserPanel コントロールを備えた単純な WinForm であるレポート ウィンドウです。レポートは単なる HTML テーブルのセットです。

私の「問題」は、ポップアップフォームであるため、BrowserPanel を含むレポートフォームがモーダルであることです。非モーダルな WinForm にしない方がよい理由は理解できたと思いますが、ユーザーがアプリの他の部分にいるときにレポート ウィンドウを開くことができればいいと思います。

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

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

4

1 に答える 1

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

フォーム プロパティ TopMost を使用すると、非モーダル ウィンドウを常に最前面に表示できます。

于 2012-05-10T01:31:30.143 に答える