プルダウンとComboboxの連動するには?

このQ&Aのポイント
  • プルダウンとComboboxの連動方法を教えてください
  • Visual Basic 2005とWebBrowser1を使ってプルダウンとComboboxの連動を実装していますが、Combobox1で選んだ値を反映させる方法がわかりません
  • Combobox1の選択値を反映させるために、WebBrowser1のDocumentオブジェクトを使用し、指定のComboBoxを取得し、その値を設定する方法が知りたいです
回答を見る
  • ベストアンサー

プルダウンとComboboxの連動するには?

これでプルダウンの選択はできるようになりましたがCombobox1で選んだやつを反映させるにはどうしたらいいでしょうか。 わかる方がいましたら教えていただけませんでしょうか。 Microsoft Visual Basic 2005 WebBrowser1を使って表示させています。 Combobox1の中身 4日 5日 6日 ' 最初の ComboBox を取得する     Dim firstCombo As HtmlElement = Me.WebBrowser1.Document.GetElementById("ct0")     ' ComboBox の値を設定する     firstCombo.SetAttribute("selectedindex", "0")

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

お世話になります。 http://oshiete1.goo.ne.jp/qa3296983.html ↑の続きですかね? ↑で回答した時のソースに手を加えました。 デザイナ上で ComboBox を 1 つ追加しています。 ComboBox で 選ばれたものが HTML 上の DropDownList に反映されると思います。 Public Class Form7   Private Sub Form7_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load     Me.Button1.Enabled = False     Me.ComboBox1.Enabled = False     Me.WebBrowser1.Navigate("http://oshiete.goo.ne.jp/search/search.php")     ' ComboBox に値を設定する     Dim comboSource As DataTable = New DataTable("ComboBoxSource")     With comboSource       .Columns.Add("ID", GetType(Integer))       .Columns.Add("NAME", GetType(String))       .Rows.Add(1, "ライフ")       .Rows.Add(2, "デジタルライフ")       .Rows.Add(3, "趣味")       .Rows.Add(4, "エンターテイメント")       .Rows.Add(5, "美容&健康")       .Rows.Add(6, "ビジネス&キャリア")       .Rows.Add(7, "社会")       .Rows.Add(8, "マネー")       .Rows.Add(9, "学問&教育")       .Rows.Add(10, "[地域情報] 旅行・レジャー・生活")       .Rows.Add(11, "[技術者向] コンピューター")       .Rows.Add(12, "【特設】アンケート")       .Rows.Add(13, "このQ&Aコミュニティーについて")     End With     Me.ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList     Me.ComboBox1.DataSource = comboSource     Me.ComboBox1.DisplayMember = "NAME"     Me.ComboBox1.ValueMember = "ID"     Me.ComboBox1.SelectedIndex = 0   End Sub   Private Sub WebBrowser1_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted     Me.Button1.Enabled = True     Me.ComboBox1.Enabled = True   End Sub   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click     ' 「指定する」ラジオボタンにチェックを入れる     Me.WebBrowser1.Document.All.GetElementsByName("ct_select")(1).InvokeMember("click")     ' 最初の DropDownList を取得する     Dim firstCombo As HtmlElement = Me.WebBrowser1.Document.GetElementById("ct0")     ' DropDownList の値を ComboBox の値で設定する     firstCombo.SetAttribute("selectedindex", Me.ComboBox1.SelectedValue.ToString())   End Sub End Class

heibondesu
質問者

お礼

迅速かつ完璧な回答ありがとうございました。 はじめはあらかじめ指定した項目をクリックできたらいいなと考えておりましたが、プルダウンで選べたらもっといいのではないかとどんどんと欲が出てしまいまたおたずねすることとなってしまいました。 また、質問させていただくことがあるかとは思いますがその時は、これに懲りずに答えてください。 本当にありがとうございました。(*^_^*)

関連するQ&A

  • Comboboxを連動するには?。

    はじめまして、どなたか教えてくれませんか。 Microsoft Visual Basic 2005を使ってCombobox1で選らんだ項目を WebBrowser1で表示させたい。 URLをCombobox1に表示させて表示はできますが項目を変えて表示するやり方がわかりまでいたのでおしえてくれませんか。 よろしくお願いします。 Combobox1で表示させたい項目 ヤフー グーグル goo Navigateで誘導したいURL http://www.yahoo.co.jp/ http://www.google.com/ http://www.goo.ne.jp/ Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged WebBrowser1.Navigate(ComboBox1.Text) End Sub

  • VB2008 comboboxを連動させた際のエラー

    先日より取り組んでいる顧客検索プログラムですが、combobox1でササキを選ぶとcombobox2には北海道、combobox3には札幌市と表示させたいと思います。先日もアドバイスをいただきそれを参考にすすめていますが、「'0' の InvalidArgument=Value は 'SelectedIndex' に対して有効ではありません。 パラメータ名: SelectedIndex」というエラーが出てしまいどうしても解決出来ません。このエラーの後さらにデバッグすると思ったとおりに動作するのですが、エラーを解決するにはどう対処すると良いのでしょうか?下記が現在のソースとなります。どうかアドバイスをお願い致します。 ササキ,北海道,札幌市, スズキ,東京都,あきる野市, サトウ,愛知県,名古屋市, ハヤシ,北海道,旭川市, が TextFile1.txtです。 Imports System.IO ------------ Public Class Form1 Private Sub Form1_Load(省略~ Dim fn As String = "C:\TextFile1.txt" Dim read As System.IO.StreamReader = My.Computer.FileSystem.OpenTextFileReader(fn, System.Text.Encoding.Default) Dim dline() As String Dim namelist As ArrayList = New ArrayList() Dim adr1list As ArrayList = New ArrayList() Dim adr2list As ArrayList = New ArrayList() dline = Split(read.ReadToEnd, vbCrLf) Dim srcary() As String Dim i As Integer For i = LBound(dline) To UBound(dline) srcary = Split(dline(i), ",") namelist.Add(srcary(0)) adr1list.Add(srcary(1)) adr2list.Add(srcary(2)) Next ComboBox1.DataSource = namelist ComboBox1.SelectedIndex = -1 ComboBox1.Text = "名前" ComboBox2.DataSource = adr1list ComboBox2.SelectedIndex = -1 ComboBox2.Text = "住所1" ComboBox3.DataSource = adr2list ComboBox3.SelectedIndex = -1 ComboBox3.Text = "住所2" End Sub ------------- Private Sub ComboBox1_SelectedIndexChanged(省略~ If ComboBox1.SelectedIndex > -1 Then ComboBox2.SelectedIndex = ComboBox1.SelectedIndex Else ComboBox2.Text = "" End If End Sub

  • VB2010 ComboBoxの使い方について、教えてください。

    VB2010 ComboBoxの使い方について、教えてください。 From[デザイン]にて、ComboBoxを配置し、タスクの「項目編集・・・」で項目を設定しました。 項目の内容は、以下の四つ。 AAA BBB CCC DDD イベントが発生すると Private Sub ComboBox_SelectedIndexChanged(....)に入り、この中で Dim index As Integer index = Me.ComboBoxFU.SelectedIndex とすれば、indexの値が変わると踏んでいましたが、値が変わりません。 Webで調べてみましたが、皆ソース上での設定しか書いていないようです。 初期設定での設定方法を教えてください。 以上、よろしくお願いします。

  • WebBrowserを使ってプルダウンを操作するには?

    WebBrowserを使ってComboboxで選んだやつをWeb上のプルダウンに反映させたいのですがどうしたらいいでしょうか。 Comboboxは 4日 5日 6日 7日 ソースを見るとこのようになっていました。 <select name="date"> <option value="4">4日  <option value="5">5日 <option value="6">6日  <option value="7" selected>7日  </select> どなたかわかる方がいましたら教えていただけませんか。 初心者なのでわかりやすくお願い致します。

  • C#でブラウザ作成、mixi上で自動運転(ボタンクリック)ができません。

    勉強のためC#でブラウザ作成を行っています。 (Microsoft Visual Studio C# 2008 Express Edition) まずはmixiのログイン画面で自動ログインするブラウザを作成しています。 URLはここです。 http://mixi.jp/home.pl メールアドレスやパスワードは入力できますが、「ログインボタン」はIDがないため、私の知識ではクリックできません。 記述したコードは、以下になります。 //ログイン用のEメールアドレスを入力 HtmlElement LoginId = this.webBrowser1.Document.GetElementById("email"); LoginId.InnerText = "aaaaaaa@yahoo.co.jp"; //パスワードを入力 HtmlElement LoginPass = this.webBrowser1.Document.GetElementById("password"); LoginPass.InnerText = "password_abc"; //チェックボックス(次回から自動でログイン)をチェック HtmlElement CheckBox = this.webBrowser1.Document.GetElementById("sticky"); LoginButton.InvokeMember("click"); //ここに「ログイン」ボタン押下処理を追加予定 解決方法,参考になるサイト,その他ご意見等、ご助言をお願いします。

  • 最後まで読み込ませて待たせるには?

    わからないので質問させてください。 初心者なのでなかなかうまくいきません。(?_?) 教えていただけないでしょうか。 よろしくお願いいたします。 OS VISTA ブラウザ IE7 Microsoft Visual Basic 2005 WindowsFormのWebBrowserを使って表示させています。 やりたいこと WebBrowser1.Navigate(ComboBox1.Text)が読み込むまで待たせたい。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click WebBrowser1.Navigate(ComboBox1.Text) WebBrowser1.Document.All.GetElementsByName("タイトル")(0).InnerText = TextBox2.Text WebBrowser1.Document.All.GetElementsByName("内容")(0).InnerText = RichTextBox1.Text End Sub

  • WebBrowserで特定の要素を削除

    Form内で表示されているWebBrowserで特定の要素たとえば<img>とか<script>とかを削除(排除)させて表示したいです。 VBを使い初めてまだ間もないです。 一応今使ってるのはVB2008ですが2005系の回答でも結構です^^ またYahoo!知恵袋のほうでも同じ質問が出ていたようですが解決はしていないようです。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1019157800 試してみたもの Dim instance As HtmlElement Dim name As String instance.RemoveAttribute(name) これをDocument_Completedイベントの中に記述しました。以下エラー 'RemoveAttribute' は 'System.Windows.Forms.HtmlElement' のメンバではありません。 また、それに似たのもMSDNにありますが、駄目でした。 http://msdn.microsoft.com/ja-jp/library/system.windows.browser.htmlelement.removeattribute%28VS.95%29.aspx

  • ComboBoxのItem追加

    VB.NETでの開発初心者です。 ComboBoxのItem追加について、1行づつ追加していくのは理解できているのですが、HTMLでのListBox「OPTIONS設定」の様にArrayListにて一括追加する方法がわかりません。 ご存知の方、よろしくお願いします。  <1行づつ追加>  Me.ComboBox1.Items.Clear()  Me.ComboBox1.Items.Add(New ComboItems(Key値, 表示値))    ※ComboItemsクラスは、別途作成 <一括追加>  Dim comboArray As New ArrayList  comboArray.Add(New ComboItems(Key値, 表示値))  Me.ComboBox1.Items.???(comboArray) ← ここがわからない  

  • 複数のプルダウンの連動とリンク

    複数の連動するプルダウンを作成し、さらに最後のページをリンクで 飛ばしたいのですが、java初心者のためそのように記述してよいのか 分かりません。 3つのプルダウンであれば他のページに記述例があったのですが、 増やす時などにどこをいじればよいか分かりませんでした。 下記ソースは他サイトからのものですが、最後のプルダウンにリンク貼れますか? 他の記述でもかまいませんので教えてください。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" /> <script type="text/javascript"><!-- function ResetOptions( index ) { var select = document.getElementById( "select" + index ); while( select ) { for( var i = 0, len = select.length; i < len; i++ ) { select.options[0] = null; } CreateOption( select, "", "項目" + ( index - 1 ) + "を選択してください" ); index++; select = document.getElementById( "select" + index ); } } function CreateOption( select, key, value ) { var option = document.createElement( "OPTION" ); option.setAttribute( "value", key ); var text = document.createTextNode( value ); option.appendChild( text ); select.appendChild( option ); } function CreateOptions( index, value, pleaseSelect ) { var select = document.getElementById( "select" + index ); if( ! select ) { return; } for( var i = 0, len = select.length; i < len; i++ ) { select.options[0] = null; } var option, text, list; if( index > 1 ) { if( value ) { list = dataList[index-1][value]; } else { ResetOptions( index ); return; } } else { list = dataList[0]; } if( pleaseSelect ) { CreateOption( select, "", "↓選択してください" ); } for( var key in list ) { CreateOption( select, key, list[key] ); } ResetOptions( index + 1 ); } var dataList = [ { "asia": "アジア", "europe": "ヨーロッパ", "south_america": "南米" }, { "asia" : { "japan": "日本", "korea": "韓国" }, "europe": { "italy": "イタリア", "spain": "スペイン", "sweden": "スウェーデン" }, "south_america": { "brazil": "ブラジル", "argentina": "アルゼンチン" } }, { "japan": { "": "38位" }, "korea": { "": "45位" }, "italy": { "": "3位" }, "spain": { "": "4位" }, "sweden": { "": "30位" }, "brazil": { "": "2位" }, "argentina": { "": "1位" } } ]; window.onload = function() { CreateOptions( 1, null, true ); ResetOptions( 2 ); }; //--></script> </head> <body> <h1>サッカー世界ランク</h1> <p>地域:<select id="select1" onchange="CreateOptions( 2, this.options[this.selectedIndex].value, true );"></select></p> <p>国:<select id="select2" onchange="CreateOptions( 3, this.options[this.selectedIndex].value, false );"></select></p> <p>順位:<select id="select3"></select></p> </body> </html>

  • C# からIE操作について

    このコードは出来ましたが、 HtmlElementCollection forms1 = all.GetElementsByName("password"); forms1[0].InnerText = "TEST"; // テキストボックスに「C#」を入力 こちらが今してるのは、IEにチェックボックスにチェックしたいけど、どうしたら出来ますか? IEソース <input name="saveFlg" type="checkbox" id="saveFlg"/> C# HtmlElement usernameTextbox = webBrowser1.Document.GetElementById("saveFlg"); usernameTextbox.SetAttribute("saveFlg", "1"); これをしてもチェックしてくれませんでした どうしたらいいですか? どなたか教えて頂けませんか?

専門家に質問してみよう