Windows フォーム テキスト ボックス コントロールから HTML テキスト ボックスにデータを送信しようとしていますが、
シナリオ: C# の私の Windows フォームには、さまざまな TextBox コントロールと 1 つの送信ボタンがあり、ボタンをクリックすると、テキスト ボックスのデータが HTML Tetxtbox に転送されます。(クエリ文字列などは使いたくない)
私のHTMLコード
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test Application</title>
<script type="text/javascript" language="javascript">
window.onload = body_Onload;
function body_Onload() {
document.getElementById("txtFirstName").focus();
}
</script>
</head>
<body>
First Name:
<input type="text" id="txtFirstName" /><br />
Last Name:
<input type="text" id="txtLastName" /><br />
Address:
<input type="text" id="txtAddress" /><br />
Mobile:
<input type="text" id="txtMobile" /><br />
</body>
</html>
C# Winform コード
public partial class Form1 : Form
{
private SHDocVw.InternetExplorer TargetIE = null;
string url;
public Form1()
{
this.button1 = new System.Windows.Forms.Button();
this.textBox1 = new System.Windows.Forms.TextBox();
this.textBox2 = new System.Windows.Forms.TextBox();
this.textBox3 = new System.Windows.Forms.TextBox();
this.textBox4 = new System.Windows.Forms.TextBox();
}
private void button1_Click(object sender, EventArgs e)
{
GetTheIEObjectFromSystem("Q_26773800");
SendTextToActiveElementWithSubmitOptionSet(false);
}
private void GetTheIEObjectFromSystem(string inurl = ".")
{
SHDocVw.ShellWindows SWs = new SHDocVw.ShellWindows();
foreach (SHDocVw.InternetExplorer internetExplorer in SWs)
{
url = internetExplorer.LocationURL;
TargetIE = internetExplorer;
return;
}
}
private void SendTextToActiveElementWithSubmitOptionSet(bool btnSubmit)
{
mshtml.IHTMLDocument2 document = null;
document = TargetIE.Document as mshtml.IHTMLDocument2;
if (!document.activeElement.isTextEdit)
{
MessageBox.Show("Active element is not a text-input system");
}
else
{
HTMLInputElement HTMLI;
//HTMLI = document.activeElement as HTMLInputElement;
HTMLI = document.activeElement as HTMLInputElement;
var tag = HTMLI.document as mshtml.HTMLDocumentClass;
mshtml.IHTMLElementCollection a = tag.getElementsByTagName("input");
for (int i = 0; i< a.length; i++) // a.length = 4
{
}
HTMLI.value = textBox1.Text;
}
}
}
}
このコードを使用すると、最初の winform textbox 値のみが HTML Textbox に渡されますが、他の textxbox の値を winform textbox から html textbox に転送したいと考えています。
for ループを使用して長さ = 4 を取得しますが、このループを使用してデータを winform から html に転送する方法がわかりませんか?