IEのお気に入りについて

タグの編集
投稿者 ともや  (高校生) 投稿日時 2011/5/9 01:23:59
WebBrowserにお気に入りを表示させる所までは出来ました。
そこでWebBrowser2にお気に入りを表示させて行きたいサイトをクリックまたはダブルクリック
するとWebBrowser1でそのサイトを表示させたいのですが方法が分かりません。
わかる方教えていただくと嬉しいです(泣)
投稿者 shu  (社会人) 投稿日時 2011/5/9 09:07:08
WebBrowser2に表示させているのがお気に入りのリストだけなら
WebBrowserを使う必要がないのでは?例えばListViewとかでも
よいと思います。そうすれば各ListViewItemにリンク先情報を持たせて
おけばNavigateするだけでよいかと思います。
投稿者 友哉  (高校生) 投稿日時 2011/5/11 11:04:18
いろいろ探してみましたがよく分かりませんでしたorz
ListViewにIEのお気に入りを表示するプログラムよかったら教えていただけないでしょうか??
探してみたんですけど見つからなくて(泣)
投稿者 shu  (社会人) 投稿日時 2011/5/11 11:58:51
ここに
http://note.phyllo.net/?eid=540651

お気に入りをTreeViewに設定するC#のサンプルが
載っていますので参考にしてみて下さい。
投稿者 友哉  (高校生) 投稿日時 2011/5/11 18:44:17
ページがありません。
あとCではないです(泣)
投稿者 まだまだ  (高校生) 投稿日時 2011/5/11 22:00:05
ページは僕の確認では存在していましたよ。
正しくURLを入力しましたでしょうか?

C#のCodeはVBととても互換性が高いので、
変換が容易にできます。
確かこちらのVB中学校でも解説されていたかと思います。
また、変換Toolもいくつか存在します。
たとえば、
http://www.developerfusion.com/tools/convert/csharp-to-vb/
を使えば一瞬で変換してくれて便利です。
もっとも、いつも正しく変換してくれるとは限りませんが。
でも高精度なので大体は大丈夫かと。
投稿者 shu  (社会人) 投稿日時 2011/5/11 22:02:20
ツリー構造なしでListViewに羅列してます。
ListView1.ItemActivateでNavigateするようにしてあります。

    Private Class clsItemFavorite
        Inherits ListViewItem

        Public Property LinkURL

        Public Sub New(ByVal Title As StringByVal LinkURL As String)
            MyBase.New(Title)
            Me.LinkURL = LinkURL
        End Sub
    End Class

    Public Sub New()
        ' この呼び出しはデザイナーで必要です。 
        InitializeComponent()

        ' InitializeComponent() 呼び出しの後で初期化を追加します。 
        ReadFavorites()
    End Sub

    Private Sub ReadFavorites()
        Dim dirFav As New DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.Favorites))

        ListView1.Items.Clear()
        For Each objFile In dirFav.GetFiles("*.URL", SearchOption.AllDirectories)
            Dim strLines = File.ReadAllLines(objFile.FullName)
            Dim strURL = ""
            For Each strLine In strLines
                If strLine.StartsWith("URL="Then
                    strURL = strLine.Substring(4)
                End If
            Next


            Dim itm As New clsItemFavorite(objFile.Name.Replace(objFile.Extension, ""), strURL)
            ListView1.Items.Add(itm)
        Next
    End Sub

    Private Sub ListView1_ItemActivate(ByVal sender As ObjectByVal e As System.EventArgs) Handles ListView1.ItemActivate
        If ListView1.SelectedItems.Count > 0 Then
            Dim itm = DirectCast(ListView1.SelectedItems(0), clsItemFavorite)
            WebBrowser1.Navigate(itm.LinkURL)
        End If
    End Sub
投稿者 (削除されました)  () 投稿日時 2011/5/12 07:56:23
(削除されました)
投稿者 shu  (社会人) 投稿日時 2011/5/12 07:58:58
修正:

> Public Property LinkURL
を Public Property LinkURL as String

型の記述が抜けてました。 


> strURL = strLine.Substring(4)
の後にExit Forがないと処理が無駄でした。
投稿者 (削除されました)  () 投稿日時 2011/5/12 09:10:12
(削除されました)
投稿者 友哉  (高校生) 投稿日時 2011/5/12 23:24:34
ありがとうございます。
お陰さまでできました!!