I'm working on a web browser and I need to know how to store history & bookmarks permanently as currently after the browser is closed all data is lossed.

Should I put it on a DB? Suggestions?

PS: They are currently being saved on a ListBox.

Recommended Answers

All 11 Replies

a database would probly be overkill for this, i believe most browsers just use text files or at most an xml to store favorites.

An easy way to do this is to create a string collectionin My.Settings.

You can add/delete from it like any other list. Set it as the Listbox's DataSource.
ListBox1.DataSource = My.Settings.History

Just make sure that user settings is set to automatically save or do it in your code in the form closed event handler.

 Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
   My.Settings.Save()
End Sub

Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
My.Settings.Save()
End Sub

^^^ didn't work :(

Well gee, with such an informative description of the problem, all I can say is you did it wrong.

@IsaacMessi10
What happened did you get an error? What did it say? Show us your code...

Well there were no syntax errors. Just when I published the project, I went to Google and I closed the program. I reopened it and found no records of me going to Google and I've done as @TnTinMN told me. :(

Public Class HistoryClass

    Private Sub HistoryList_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles HistoryList.SelectedIndexChanged
        HistoryList.DataSource = My.Settings.History
    End Sub

    Private Sub Delete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Delete.Click
        HistoryList.Items.Clear()
    End Sub

    Private Sub Remove_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Remove.Click
        If (HistoryList.SelectedIndex >= 0) Then
            HistoryList.Items.RemoveAt(HistoryList.SelectedIndex)
        End If
    End Sub

    Private Sub Open_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Open.Click
        If (HistoryList.SelectedIndex >= 0) Then
            Form1.WebBrowser.Navigate(HistoryList.SelectedItems(0))
        End If
    End Sub
End Class

Hi,
Where do you actually write the entry to your setting? Are you saving the updated setting?

Yes in the main form just before it closes.

Here is a very crude webbrowser example that maintains two history listes. It may give you some ideas. This example uses datatables instead of a string collection.

tks a lot m8

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.