Wombat 3fca229f52 DevExpress-Update
frmCategoryEdit umbenannt in frmSettings
Weitere (erfolglose) Tests, um die richtige Zeitzone bei Google-Kalender-Terminen zu hinterlegen
2025-01-05 17:48:45 +01:00

49 lines
2.3 KiB
VB.net

Public Class frmSettings
Private Sub frmCategoryEdit_Load(sender As Object, e As EventArgs) Handles MyBase.Load
prepare()
fill()
tcMain.SelectedTabPageIndex = 0
End Sub
Private Sub prepare()
grd.DataSource = General.Settings.Categories
With grdv
.PopulateColumns()
.Columns(NameOf(Category.Key)).OptionsColumn.AllowEdit = False
.Columns(NameOf(Category.Key)).Caption = "Kürzel"
.Columns(NameOf(Category.Text)).Caption = "Bezeichnung"
.Columns(NameOf(Category.Color)).Caption = "Farbe"
.Columns(NameOf(Category.Exclude)).Caption = "Auf Kalender ausschließen"
End With
cboDefaultTimezone.DataBindings.Add(New Binding("EditValue", General.Settings, NameOf(General.Settings.DefaultTimezoneId)))
End Sub
Private Sub fill()
For Each z As TimeZoneInfo In TimeZoneInfo.GetSystemTimeZones().OrderBy(Function(tz) tz.DisplayName)
cboDefaultTimezone.Properties.Items.Add(z.DisplayName, z.Id, -1)
' Console.WriteLine(z.Id)
Next
End Sub
Private Sub btnSave_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnSave.ItemClick
GridFunctions.EndGridEdit(grdv)
EndControlEdit(ActiveControl)
General.Settings.Save()
DialogResult = DialogResult.OK
End Sub
Public Shared Sub EndControlEdit(ActiveCtrl As Control)
'Dieser Sub ist nötig, da DevExpress-Controls ihre Daten erst durch verlieren des Fokus oder durch DoValidate() zurück ins DataSet schreiben.
'Hat ein DevExpress-Control noch Fokus und es wird auf einen Button geklickt, der keinen Fokus bekommt (z.B. RibbonControl-Buttons), werden die Änderungen aus diesem Feld nicht ins Dataset zurückgeschrieben und somit auch nicht beim Speichern als Änderungen erkannt
While TypeOf ActiveCtrl Is IContainerControl
ActiveCtrl = CType(ActiveCtrl, IContainerControl).ActiveControl
End While
If TypeOf ActiveCtrl Is DevExpress.XtraEditors.TextBoxMaskBox Then ActiveCtrl = ActiveCtrl.Parent
If TypeOf ActiveCtrl Is DevExpress.XtraEditors.BaseEdit Then CType(ActiveCtrl, DevExpress.XtraEditors.BaseEdit).DoValidate()
End Sub
End Class