• ベストアンサー

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

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

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

こんにちは No.2です コードで設定しているんですね。  ComboBox1.Tag = "http://www.yahoo.co.jp/,http://www.google.com/," _ & "http://www.goo.ne.jp/" で設定できます(間に空白を挟まないで下さい)。 余談ですが、私ならフォームのデザイン時にプロパティに設定する方法を採用します。そうすれば、設定のためのコードは書く必要がなくなります。

hills2000
質問者

お礼

ほんとですね、これでコードの書くことも少なくなるかと思います。 アドバイスまでありがとうございました。 また教えていただくかとは思いますがよろしくお願いします。

その他の回答 (2)

回答No.2

こんばんは いろいろ方法はあると思いますが、以下のようなのはどうでしょうか ComboBoxの  Itemsには今迄通り表示項目(ヤフー ...)を設定する  Tagにカンマ区切りでURL(http://www.yahoo.co.jp/, ...)を設定する Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged  WebBrowser1.Navigate(ComboBox1.Tag.Split(",")(ComboBox1.SelectedIndex)) End Sub 表示名とURLの指定順は同じにしてください。

hills2000
質問者

お礼

ご回答ありがとうございます。 ここまではわかったのですがTagの使い方がわからないので教えていただけませんか。 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ComboBox1.Items.Add("ヤフー") ComboBox1.Items.Add("グーグル") ComboBox1.Items.Add("goo") もしくは Dim Items() As String = {"ヤフー","グーグル","goo"} ComboBox1.Items.AddRange(Items)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

データバインディングなどを使わないのであれば ComboBoxで表示されたテキスト以外のデータを取得する方法がありません ConboBoxのSelectedIndexなどのプロパティを使って Select Caseなどで場合わけしてやる方法が一般的なように思います  dim sUrl as string  Select Case ComboBOx1.SelectedIndex  Case 0   sUrl = "HTTP://www.yahoo.co.jp"  Case 1   sUrl = "HTTP://www.google.com"  Case 2   sUrl = "HTTP://www.goo.ne.jp"  end select  if sUrl <> "" then   WebBrowser1.Navigate( sUrl )  end if バインドを使うなら <?xml version="1.0" standalone="yes"?> <NewDataSet> <MyTable01> <ID>1</ID> <Name>ヤフー</Name> <URL>http://www.yahoo.co.jp/</URL> </MyTable01> <MyTable01> <ID>2</ID> <Name>グーグル</Name> <URL>http://www.googole.co.jp/</URL> </MyTable01> <MyTable01> <ID>3</ID> <Name>グー</Name> <URL>http://www.goo.ne.jp/</URL> </MyTable01> </NewDataSet> などのXMLファイルを用意して フォームレベルの変数に  Dim myDS as DataSet フォームのLoadイベントで  myDS.ReadXml( XMLファイルのパス )  ComboBox1.DataSource = mydS  ComboBOx1.DisplayMember = "myTable01.Name"  ComboBox1.ValueMember = "myTable01.URL" コンボボックスの SelectedIndexChangeイベントで  WebBrowser1.Navigate( ComboBox1.SelectedValue ) といった具合でしょう

hills2000
質問者

お礼

丁寧なご回答ありがとうございました。 sUrl = "" これを付けるとできました。 また、教えていただくことがあるかと思いますがよろしくお願いします。

関連するQ&A

専門家に質問してみよう