質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

UI

UIはUser Interfaceの略であり、人間がコンピュータとやりとりをするためのシステムです。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

.NET Framework 4.0

Microsoft Windows用のソフトウェア開発環境/実行環境である .NET Frameworkの4番目のメジャーバージョンです。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

2回答

15136閲覧

C#でUIをHTMLで記述する方法(値の埋め込み方)

alths122

総合スコア16

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

UI

UIはUser Interfaceの略であり、人間がコンピュータとやりとりをするためのシステムです。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

.NET Framework 4.0

Microsoft Windows用のソフトウェア開発環境/実行環境である .NET Frameworkの4番目のメジャーバージョンです。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

1グッド

1クリップ

投稿2016/05/04 15:41

編集2016/05/04 15:57

質問

C#/FormsアプリにてUIをHTMLで記述する場合の、一般的な値の埋め込み方を教えてください。

目的

C#でFormsアプリを作成しています。
アプリ内の一部にて複雑な表示が必要となったため、この箇所をHTMLでデザインしたいと考えています。

基本的な思想としては、表示領域にFormsWebBrowserを設置し、ここにローカル上のHTMLファイルを読み込ませる。
このとき、HTMLの内部にC#の変数を埋め込むことを考えています。
(あくまでもUIをHTMLで記述したいだけです。Webアプリを作りたいと思っているわけではありません。)

問題

UIをHTMLで記述する際、C#ではどのような方法が一般的なのかが分かっていません。
恐らく方法としては、Webのフレームワークなどで使われる
<%= value %>
といったような方法でC#側の変数を埋め込むか、
もしくは(C#からJavaScriptの変数を操作できるようなので)JavaScriptを用いてHTMLに値を埋め込む、または
C#コード上からHTMLを読み込みオブジェクト化し、値の埋め込みや書き換えをする
のいずれかだと思っています。

実際のところ、どのような方法を用いるのが一般的/用いるべき なのでしょうか。

makoto-n👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

フォームのUIをHTMLで表現する・・自分的にはあまり一般的で無いような気がします。
ただやるとなったら自分ならあまり特殊なルール等(特殊な記述)は行わずにしようと思います。
例えば下記のような方法を考えます。
・htmlはxhtmlで記述
・対象htmlはXmlDocumentクラスで読み込む
・要素に対する操作(値の書き換え等)は上記XmlDocumentクラスで行う
・要素の特定方法は基本的にはid属性で行う
といった感じです。

投稿2016/05/04 20:56

dekaaki

総合スコア292

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

WebBrowserコントロール内のHTML/JavaScriptにC#から値を渡す場合、次の3つの方法が考えられます。

  1. WebBrowser.Document プロパティを通じてHTMLDOMツリーにアクセスし、目的のDOM要素を書き換える。JavaScriptによるDOM操作時と同様に、WebBrowser.Document.GetElementById() で目的のDOM要素を取得し、HTMLElement.innerHtml を書き換える、あるいはWebBrowser.Document.InvokeScript() によりJavaScriptコードを実行、その際functionにパラメーター文字列を与えて呼び出す、といった操作が可能です。
  2. WebBrowser.DocumentStream または WebBrowser.DocumentText にHTML全文をテキストとして与える。この場合、C#の変数値等は、HTMLテキストの組み立て処理などで組み込んでやることができます。
  3. WebBrowser.ObjectForScript(HTML側からは window.external という特殊オブジェクトで参照できる) を通じてHTML側の要素やJavaScriptとC#コード間で通信し、必要な情報をやりとりする。

参考サイト:
WebBrowser クラス(System.Windows.Forms)
HtmlDocument クラス(System.Windows.Forms)
方法 : DHTML コードとクライアント アプリケーション コード間の双方向の通信を実装する

ご参考になれば。

投稿2016/05/05 00:27

編集2016/05/05 00:31
tkanda

総合スコア2425

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問