Teman-teman,
Saya telah mampu menyelesaikan masalah terdahulu untuk Combobox selectedIndexChanged. Namun, saya menghadapi masalah baru, yaitu kalau entry yang ingin ditambilkan di listbox cukup banyak, saya butuh waktu untuk meload. Kadang cukup lama juga. Apa teman-teman punya saran agar saya bisa menampilkan entry di listbox lebih cepat? Belikut ini adalah fitur dan sourcecodenya.
N.B: Jujur kalau saya sedang mentok begini saya tidak mau jalan atau berhenti. Saya harus terus mencari cara untuk menyelesaikannya sehingga saya terus berkutat pada masalah ini. Terima kasih atas bantuannya.
[spoiler](https://forum.dhammacitta.org/proxy.php?request=http%3A%2F%2Fphotos-c.ak.fbcdn.net%2Fhphotos-ak-snc3%2Fhs139.snc3%2F18640_103781562977442_100000367970759_94562_1837617_n.jpg&hash=e611bc15a58437008c1725240e33ee11297aa02c)[/spoiler]
Imports System.Data.SQLite
Imports System.IO
Public Class Form1
Inherits System.Windows.Forms.Form
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
comboboxLoad()
End Sub
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
DictLoad()
End Sub
Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
EntryLoad()
If ListBox1.TopIndex <> ListBox1.SelectedIndex Then
' Make the currently selected item the top item in the ListBox.
ListBox1.TopIndex = ListBox1.SelectedIndex
End If
WebBrowser1.DocumentText = "& txtMeanings.Text & "
End Sub
Private Sub txtSearch_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSearch.TextChanged
Dim curItem As String = txtSearch.Text.ToString()
' Find the string in ListBox2.
Dim index As Integer = ListBox1.FindString(curItem)
' If the item was not found in ListBox 2 display a message box, otherwise select it in ListBox2.
If index = -1 Then
MessageBox.Show("Vocabulary not available!")
Else
ListBox1.SetSelected(index, True)
End If
End Sub
Private Sub comboboxLoad()
Dim sqlcon As New SQLiteConnection("Data Source=" & Application.StartupPath & "\Data\DUBD.db;")
Dim str As String
sqlcon.Open()
ListBox1.Items.Clear()
str = "select DictLists from Dictionary "
Dim sqlcom As New SQLiteCommand(str, sqlcon)
Dim dr As SQLiteDataReader
dr = sqlcom.ExecuteReader()
While dr.Read()
ComboBox1.Items.Add(dr("DictLists"))
End While
End Sub
Private Sub DictLoad()
Dim sqlcon As New SQLiteConnection("Data Source=" & Application.StartupPath & "\Data\DUBD.db;")
Dim str As String
sqlcon.Open()
txtEntry.Text = ""
txtMeanings.Text = ""
ListBox1.Items.Clear()
str = "select * from Entry where DictLists ='" & (ComboBox1.SelectedItem) & "' "
Dim sqlcom As New SQLiteCommand(str, sqlcon)
Dim dr As SQLiteDataReader
dr = sqlcom.ExecuteReader()
While dr.Read()
ListBox1.Items.Add(dr("EntryLists"))
End While
End Sub
Private Sub EntryLoad()
Dim sqlcon As New SQLiteConnection("Data Source=" & Application.StartupPath & "\Data\DUBD.db;")
Dim str As String
sqlcon.Open()
txtEntry.Text = ""
txtMeanings.Text = ""
txtSources.Text = ""
Label3.Text = ""
str = "select * from Entry where EntryLists ='" & (ListBox1.SelectedItem) & "'"
Dim sqlcom As New SQLiteCommand(str, sqlcon)
Dim dr As SQLiteDataReader
dr = sqlcom.ExecuteReader()
While dr.Read()
Label3.Text = dr("EntryLists")
txtMeanings.Text = dr("Meanings")
txtSources.Text = dr("Sources")
End While
End Sub
End Class
kalau dibikin partial?
misalnya jgn berbentuk listbox tetapi popup atau dialog. jadi didalam dialognya dibagi berdasarkan abjad lagi. ketika di klik abjadnya, baru pilihannya yg berawalan abjad tadi muncul.
mending proyeknya di-outsource-kan aja, Sam, ke DC, pasti beres, harga negotiable
ato dibikin versi webnya jg. data di supply aja ;D
mungkin tips kecil ini bisa sedikit mempercepat,
hindari "SELECT * FROM ...",
biasakan menyebutkan hanya column yg perlu saja, misalnya "SELECT word FROM ..."
Quote from: Indra on 25 February 2010, 01:50:15 PM
mending proyeknya di-outsource-kan aja, Sam, ke DC, pasti beres, harga negotiable
Di-outsource-kan gimana maksudnya? Maaf saya tidak bermaksud untuk membuat software komersial. Saya bekerja keras siang malam untuk kamus ini hingga thesis saya keleleran, tidak akan maksud untuk mengomersialkan kamus digital ini. Setelah selesai, saya akan bagikan kepada siapa pun yang menginginkannya. Kalau Sdr. Sumedho dan Indra mau bantu, saya bisa kirim sourcecodenya, biar proyek ini selesai dan saya bisa duduk dengan tenang mengerjakan Thesis saya.
Thanks atas bantuannya dan kepedulian teman-teman semua.
maksudnya dari sdr Indra itu, diperbantukan oleh teman2x di DC pengerjaannya. bukan utk dikomersilkan :)
Quote from: Sumedho on 25 February 2010, 01:52:17 PM
ato dibikin versi webnya jg. data di supply aja ;D
Kalau buat versi webnya sih mudah karena saya bisa mengubah database dengan cepat (saya pikir begitu)
Quote from: Sumedho on 26 February 2010, 12:29:54 AM
maksudnya dari sdr Indra itu, diperbantukan oleh teman2x di DC pengerjaannya. bukan utk dikomersilkan :)
Ya boleh, saya cuma kesulitan dalam hal itu saja. Saya bisa kok upload sourcecodenya.