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

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

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

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

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

Q&A

解決済

1回答

3103閲覧

CefSharpのChromiumWebBrowserで読み込んだローカルHTMLに用意したテキストエリアで書き込んだ値を取得したい

eneko0513

総合スコア349

C#

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

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

0グッド

0クリップ

投稿2020/05/02 18:39

前提・実現したいこと

前提
・C#でWindowsフォームアプリケーションを作成しています。
・フォームにはChromiumWebBrowserコントロールと保存用の処理のためのボタンが配置されています。
・Chromiumベースのコントロールである、CefSharpのChromiumWebBrowserを用いてローカルに存在するHTMLファイルを表示しています。
・HTMLファイルを表示することはできています。
・HTMLファイルの中には、シンプルな <textarea id="test"></textarea> というような要素が存在しており、値の入力が可能です。

実現したいこと
実現したいことは、このtextarea上に何かしらの値を入力した状態で保存ボタンを押下したときに
入力された値をC#側の変数に格納したいと考えています。

入力された値だけでなくHTMLのソースそのままでもOKです。

発生している問題・エラーメッセージ

現状、初期状態のHTMLのソースは下記のコードで取得ができています。

C#

1chromiumWebBrowser1.GetSourceAsync().Result

初期状態のHTMLのソースコード

HTML

1<html> 2<head> 3 <title>TEST</title> 4 <meta charset="utf-8"> 5</head> 6<body> 7 <textarea id="test"></textarea> 8</body> 9</html>

実現したいのはここで textarea に対して テスト入力です のような値を入力されている状態のHTMLまたは
テスト入力ですという値を取得できることです。

イメージ説明

補足情報(FW/ツールのバージョンなど)

言語:C#
フレームワーク:.NET Framework 4.6.1
CefSharp.WinForms:79.1.360


以上です、知見をご教示いただければ幸いです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

CefSharpのWikiにサンプルコードはあるようですが、確認されましたか?
2. How do you call a JavaScript method that returns a result?

C#

1 var task = chromiumWebBrowser1.EvaluateScriptAsync( 2 "(function() { var body = document.body; return document.getElementById('test').value; })();"); 3 var response = await task; 4 var result = response.Success ? (response.Result ?? "null") : response.Message; 5 MessageBox.Show(result.ToString());

投稿2020/05/03 01:53

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

eneko0513

2020/05/03 02:19 編集

radianさん こんにちは、情報ありがとうございます。 すみませんCefSharpのリファレンスに関してですが共有頂いたページは見れていませんでした。 ([ChromiumWebBrowser Properties](http://cefsharp.github.io/api/73.1.x/html/Properties_T_CefSharp_Wpf_ChromiumWebBrowser.htm )を参照していました) 頂いたコードを少しだけ変更して対応した所無事に入力値の取得が行えました これで行いたいことは達成できそうです誠にありがとうございます。 [結果](https://gyazo.com/0563609d1f439150d5d0d7268bf0f80d )
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問