Imports System.Data.SQLite Public Class frmSettings Dim ToAdd As New List(Of String) Dim ToDelete As New List(Of String) Private Sub frmSettings_Load(sender As Object, e As EventArgs) Handles MyBase.Load LoadSettings() End Sub Private Sub LoadSettings() txtUSDir.Text = My.Settings.UltraStarDirectory fillPaths() End Sub Private Async Sub fillPaths() lstPaths.Items.Clear() For Each p As String In Await LibraryRepository.GetLibraries lstPaths.Items.Add(p) Next End Sub Private Sub btnPathAdd_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnPathAdd.ItemClick If FBD.ShowDialog = DialogResult.OK Then Dim pfad As String = FBD.SelectedPath ToAdd.Add(pfad) lstPaths.Items.Add(pfad) End If End Sub Private Sub btnSave_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnSave.ItemClick SaveSettings() Me.DialogResult = DialogResult.OK End Sub Private Sub SaveSettings() 'Allgemein speichern My.Settings.UltraStarDirectory = txtUSDir.Text My.Settings.Save() 'Pfade speichern LibraryRepository.AddLibraries(ToAdd) ToAdd.Clear() LibraryRepository.DeleteLibraries(ToDelete) ToDelete.Clear() End Sub Private Sub btnPathDelete_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnPathDelete.ItemClick If lstPaths.SelectedItem IsNot Nothing Then ToDelete.Add(CStr(lstPaths.SelectedItem)) lstPaths.Items.Remove(CStr(lstPaths.SelectedItem)) End If End Sub Private Sub frmSettings_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing If (ToAdd.Count + ToDelete.Count) > 0 Then Dim ds = MessageBox.Show("Möchten Sie die Änderungen speichern?", Me.Text, MessageBoxButtons.YesNo) If ds = DialogResult.Yes Then SaveSettings() Me.DialogResult = DialogResult.OK ElseIf ds <> DialogResult.No Then e.Cancel = True End If End If End Sub Private Sub btnUSDX_Click(sender As Object, e As EventArgs) Handles btnUSDir.Click If FBD.ShowDialog = DialogResult.OK Then txtUSDir.Text = FBD.SelectedPath End If End Sub End Class