- ベストアンサー
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
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは No.2です コードで設定しているんですね。 ComboBox1.Tag = "http://www.yahoo.co.jp/,http://www.google.com/," _ & "http://www.goo.ne.jp/" で設定できます(間に空白を挟まないで下さい)。 余談ですが、私ならフォームのデザイン時にプロパティに設定する方法を採用します。そうすれば、設定のためのコードは書く必要がなくなります。
その他の回答 (2)
- sugao_chib
- ベストアンサー率59% (22/37)
こんばんは いろいろ方法はあると思いますが、以下のようなのはどうでしょうか 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の指定順は同じにしてください。
お礼
ご回答ありがとうございます。 ここまではわかったのですが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)
データバインディングなどを使わないのであれば 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 ) といった具合でしょう
お礼
丁寧なご回答ありがとうございました。 sUrl = "" これを付けるとできました。 また、教えていただくことがあるかと思いますがよろしくお願いします。
お礼
ほんとですね、これでコードの書くことも少なくなるかと思います。 アドバイスまでありがとうございました。 また教えていただくかとは思いますがよろしくお願いします。