Imports System.ComponentModel Imports System.Windows.Forms Public Class frmAddAlternateHymnTuneName Private m_objCurrentHymnTuneName As clsHymnTuneName Private m_objAlternateHymnTuneNameChosen As clsHymnTuneName Public Property CurrentHymnTuneName() As clsHymnTuneName Get Return m_objCurrentHymnTuneName End Get Set(ByVal Value As clsHymnTuneName) m_objCurrentHymnTuneName = Value End Set End Property Public ReadOnly Property AlternateHymnTuneNameChosen() As clsHymnTuneName Get Return m_objAlternateHymnTuneNameChosen End Get End Property Public Sub LoadGUI(ByVal objCurrentHymnTuneName As clsHymnTuneName) CurrentHymnTuneName = objCurrentHymnTuneName lblAlternateHymnTuneName.Text = "Select Alternate Hymn Tune Name for: " + objCurrentHymnTuneName.HymnTuneName Dim objHymnTuneNames As System.Collections.Generic.List(Of clsHymnTuneName) = clsHymnTuneName.GetAllHymnTuneNames() Dim objHymnTuneName As clsHymnTuneName For Each objHymnTuneName In objHymnTuneNames If objHymnTuneName.HymnTuneName = objCurrentHymnTuneName.HymnTuneName Then 'Do not load this one - it is the one we are comparing to Else If objHymnTuneName.OtherHymnTuneNamesForTune.ContainsKey(objHymnTuneName.HymnTuneName) Then 'Do not load this one - it already matches Else lstAlternateHymnTuneNames.Items.Add(objHymnTuneName) End If End If Next m_objAlternateHymnTuneNameChosen = Nothing End Sub Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click If lstAlternateHymnTuneNames.SelectedItems.Count = 0 Then MessageBox.Show("Must select an alternate hymn tune name") Me.DialogResult = System.Windows.Forms.DialogResult.None Exit Sub End If m_objAlternateHymnTuneNameChosen = CType(lstAlternateHymnTuneNames.SelectedItem, clsHymnTuneName) 'This button will close the form with Dialog Result OK End Sub Public Shared Function GetAlternateHymnTuneNameChosen(ByVal objCurrentHymnTuneName As clsHymnTuneName) As clsHymnTuneName Dim objFrmAddAlternateHymnTuneName As New frmAddAlternateHymnTuneName objFrmAddAlternateHymnTuneName.LoadGUI(objCurrentHymnTuneName) objFrmAddAlternateHymnTuneName.ShowDialog() Dim lobjReturnValue As clsHymnTuneName = objFrmAddAlternateHymnTuneName.AlternateHymnTuneNameChosen objFrmAddAlternateHymnTuneName.Dispose() Return lobjReturnValue End Function End Class