All my (programming) life I’ve been plagued by timing problems! I assumed (haha) that when I changed from a pervasively multitasking OS to Vista I would escape the problem but it seems like I must be missing something.
My problem lies in WhichChar. Note the line:
'MsgBox(vbNullString)
If I leave it commented out, the StringBuilder retVal is only occasionally updated, about half the time. If I uncomment the MsgBox line, retVal is always correctly updated.
I did see that the Controls are not guaranteed to be thread-safe, that may be the problem I am running into. I have two more problems with ComboBoxes in general, but I will keep digging to see if I can resolve them myself.
Private Sub asteriskComboBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles asteriskComboBox.SelectedIndexChanged
WhichChar(asteriskComboBox, asteriskReplacement, asteriskComboIndex)
End Sub
Public Sub WhichChar(ByVal CBox As ComboBox, ByRef retVal As StringBuilder, ByRef indexToChange As Integer)
If Not isInstantiating Then
indexToChange = CBox.SelectedIndex
Dim selectedIndex As Integer
selectedIndex = CBox.SelectedIndex
Dim selectedItem As New Object
selectedItem = CBox.SelectedItem
retVal.Length = 0
'MsgBox(vbNullString)
Select Case indexToChange
Case 0 'single space
retVal.Append(" ")
Case 1 'hyphen
retVal.Append("-")
Case 2 'single space>hyphen<single space>
retVal.Append(" - ")
Case 3 'open single quote
retVal.Append("`")
Case 4 '' close single quote
retVal.Append("'")
Case 5 'underscore
retVal.Append("_")
Case Else 'everything else
retVal.Append(CBox.SelectedText)
End Select
End If
End Sub
This is a project with multiple purposes. The actual job of the program is to rename songs. I am using iTunes to put my CD collection on my computer. Most of the CDs are identified automatically, others I can ID with a few of the free online DB services. A handful I can find the track list online but not in a database. In these cases the file name and song title look like “01 Track 01”, “Track 1” or “01 Track”.
Entering all this info manually would take less time than writing the code! So, I last worked in Basic in the late ‘70s, got into C then C++ as soon as alpha wear was available. I recently switched to Windows and thought I would play with a bit of programming. This is my first attempt (after “Hello, world!”) and I am finding the going a bit slow.
Thanks in advance for the help I get!
-Ed