Files
AVISO/Aviso/frmEintragTvNew.vb
2024-11-22 16:41:27 +01:00

1092 lines
48 KiB
VB.net

Imports System.Data.SqlClient
Imports VERAG_PROG_ALLGEMEIN
Public Class frmEintragTvNew
Dim AvisoTvNewDAL As New cAvisoTvNewDAL()
Dim myAvisoTvNew As cAvisoTvNew
Dim hatAenderung As Boolean = False
Dim Neuanlage As Boolean = False
Dim list As New List(Of cAvisoTvNew)()
Dim listAll As New List(Of cAvisoTvNew)()
Private isInitializing As Boolean = False
' **Neue Klassenvariable zur Speicherung der zuletzt ausgewählten TVID**
Private lastSelectedTVID As Integer = 0
Public Sub New()
InitializeComponent()
InitializeFontComboBoxes()
Icon = cMeineFunktionenAVISO.GetProgrammIcon()
End Sub
Private Sub frmEintragTvNew_Load(sender As Object, e As EventArgs) Handles MyBase.Load
LadeStandorte()
LadeTvTextBezeichnungen()
LadenAlleEintraege()
grpWochentage.Enabled = chkIsRecurring.Checked
dgvAVISOTV.SelectionMode = DataGridViewSelectionMode.FullRowSelect
dgvAVISOTV.MultiSelect = False
dtpStartDate.ShowCheckBox = True
dtpEndDate.ShowCheckBox = True
dtpStartTime.ShowCheckBox = True
dtpEndTime.ShowCheckBox = True
chkIsActive.Checked = True
End Sub
Private Sub LadenAlleEintraege()
Try
AvisoTvNewDAL.LesenAlleAvisoTvNew(listAll)
Catch ex As Exception
MessageBox.Show("Fehler beim Laden aller Einträge: " & ex.Message, "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Private Sub LadeStandorte()
Dim standorte As New List(Of String)()
Try
Dim conn As SqlConnection = cDatenbankAVISO.GetNewOpenConnectionWithoutError()
If conn Is Nothing Then
MessageBox.Show("Die Datenbankverbindung konnte nicht hergestellt werden.", "Verbindungsfehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
Return
End If
Dim sql As String = "SELECT DISTINCT Standort FROM StandorteTV ORDER BY Standort"
Using cmd As New SqlCommand(sql, conn)
Using dr As SqlDataReader = cmd.ExecuteReader()
While dr.Read()
Dim standort As String = Convert.ToString(dr("Standort"))
standorte.Add(standort)
End While
End Using
End Using
Catch ex As SqlException
MessageBox.Show("SQL Fehler beim Laden der Standorte: " & ex.Message, "SQL Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
Catch ex As Exception
MessageBox.Show("Allgemeiner Fehler beim Laden der Standorte: " & ex.Message, "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
cbxStandort.Items.Clear()
cbxStandort.Items.AddRange(standorte.ToArray())
If cbxStandort.Items.Count > 0 Then cbxStandort.SelectedIndex = 0
End Sub
Private Sub initdgv()
Try
RemoveHandler dgvAVISOTV.SelectionChanged, AddressOf dgvAVISOTV_SelectionChanged
Dim standort As String = cbxStandort.SelectedItem?.ToString()
Dim showInactive As Boolean = chkShowInactive.Checked
Dim gefilterteListe As List(Of cAvisoTvNew)
If showInactive Then
gefilterteListe = list.Where(Function(x) x.Standort = standort).ToList()
Else
gefilterteListe = list.Where(Function(x) x.Standort = standort AndAlso x.IsActive).ToList()
End If
dgvAVISOTV.DataSource = Nothing
dgvAVISOTV.Rows.Clear()
If gefilterteListe.Count > 0 Then
dgvAVISOTV.DataSource = gefilterteListe
' Anpassen der Spaltenüberschriften
dgvAVISOTV.Columns("TvTextBezeichnungID").HeaderText = "ID"
dgvAVISOTV.Columns("TvTextBezeichnung").HeaderText = "Bezeichnung"
dgvAVISOTV.Columns("FixeZeile1RTF").HeaderText = "Zeile 1 (Text)"
dgvAVISOTV.Columns("FixeZeile2RTF").HeaderText = "Zeile 2 (Text)"
dgvAVISOTV.Columns("FixeZeile3RTF").HeaderText = "Zeile 3 (Text)"
dgvAVISOTV.Columns("Standort").Visible = False
dgvAVISOTV.Columns("Art").Visible = False
dgvAVISOTV.Columns("StartDate").HeaderText = "Startdatum"
dgvAVISOTV.Columns("EndDate").HeaderText = "Enddatum"
dgvAVISOTV.Columns("StartTime").HeaderText = "Startzeit"
dgvAVISOTV.Columns("EndTime").HeaderText = "Endzeit"
dgvAVISOTV.Columns("IsRecurring").HeaderText = "Wiederholen"
dgvAVISOTV.Columns("IsActive").HeaderText = "Aktiv"
dgvAVISOTV.Columns("IsMonday").Visible = False
dgvAVISOTV.Columns("IsTuesday").Visible = False
dgvAVISOTV.Columns("IsWednesday").Visible = False
dgvAVISOTV.Columns("IsThursday").Visible = False
dgvAVISOTV.Columns("IsFriday").Visible = False
dgvAVISOTV.Columns("IsSaturday").Visible = False
dgvAVISOTV.Columns("IsSunday").Visible = False
' Hinzufügen des CellFormatting-Handlers
AddHandler dgvAVISOTV.CellFormatting, AddressOf dgvAVISOTV_CellFormatting
dgvAVISOTV.AutoResizeColumns()
AddHandler dgvAVISOTV.SelectionChanged, AddressOf dgvAVISOTV_SelectionChanged
' **Wiederherstellung der Auswahl basierend auf lastSelectedTVID**
If lastSelectedTVID <> 0 Then
Dim rowToSelect = dgvAVISOTV.Rows.Cast(Of DataGridViewRow)().FirstOrDefault(Function(r) CType(r.DataBoundItem, cAvisoTvNew).TvTextBezeichnungID = lastSelectedTVID)
If rowToSelect IsNot Nothing Then
rowToSelect.Selected = True
dgvAVISOTV.FirstDisplayedScrollingRowIndex = rowToSelect.Index
dgvAVISOTV.CurrentCell = rowToSelect.Cells(0)
Else
' Falls die TVID nicht gefunden wird, wähle die erste Zeile aus
If dgvAVISOTV.Rows.Count > 0 Then
dgvAVISOTV.Rows(0).Selected = True
dgvAVISOTV.CurrentCell = dgvAVISOTV.Rows(0).Cells(0)
dgvAVISOTV_SelectionChanged(Nothing, Nothing)
End If
End If
ElseIf dgvAVISOTV.Rows.Count > 0 Then
dgvAVISOTV.Rows(0).Selected = True
dgvAVISOTV.CurrentCell = dgvAVISOTV.Rows(0).Cells(0)
dgvAVISOTV_SelectionChanged(Nothing, Nothing)
End If
Else
AddHandler dgvAVISOTV.SelectionChanged, AddressOf dgvAVISOTV_SelectionChanged
ClearFields()
myAvisoTvNew = Nothing
End If
Neuanlage = False
hatAenderung = False
Catch ex As Exception
MessageBox.Show("Fehler beim Laden der Daten: " & ex.Message, "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Private Sub dgvAVISOTV_CellFormatting(sender As Object, e As DataGridViewCellFormattingEventArgs)
' Definieren Sie die Namen der RTF-Spalten
Dim rtfColumns As String() = {"FixeZeile1RTF", "FixeZeile2RTF", "FixeZeile3RTF"}
' Überprüfen Sie, ob die aktuelle Spalte eine der RTF-Spalten ist
If rtfColumns.Contains(dgvAVISOTV.Columns(e.ColumnIndex).Name) AndAlso e.Value IsNot Nothing Then
Try
' Konvertieren Sie den RTF-Text in normalen Text
Using rtb As New RichTextBox()
rtb.Rtf = e.Value.ToString()
e.Value = rtb.Text
e.FormattingApplied = True
End Using
Catch ex As Exception
' Falls das RTF ungültig ist, zeigen Sie den Originalwert an
e.Value = e.Value.ToString()
e.FormattingApplied = True
End Try
End If
End Sub
Private Sub cbxStandort_SelectedValueChanged(sender As Object, e As EventArgs) Handles cbxStandort.SelectedValueChanged
If list IsNot Nothing Then list.Clear()
Dim selectedStandort As String = If(cbxStandort.SelectedItem IsNot Nothing, cbxStandort.SelectedItem.ToString(), "")
Try
AvisoTvNewDAL.LesenAvisoTvNew(0, "", selectedStandort, list)
Catch ex As Exception
MessageBox.Show("Fehler beim Lesen der Einträge: " & ex.Message, "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
Return
End Try
LadeTvTextBezeichnungen()
initdgv()
End Sub
Private Sub btnNeu_Click(sender As Object, e As EventArgs)
Dim standort As String = cbxStandort.SelectedItem?.ToString()
If String.IsNullOrEmpty(standort) Then
MessageBox.Show("Bitte wählen Sie einen Standort aus.", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Warning)
Return
End If
Dim standortID As Integer = AvisoTvNewDAL.GetStandortID(standort)
If standortID = 0 Then
MessageBox.Show("Ungültiger Standort ausgewählt.", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
Return
End If
myAvisoTvNew = New cAvisoTvNew() With {
.StandortID = standortID,
.Standort = standort,
.Art = "",
.IsActive = True
}
cmbTvTextBezeichnungAuswahl.SelectedIndex = -1
txtNeueTvTextBezeichnung.Text = ""
Neuanlage = True
hatAenderung = False
Me.Text = "Neuen Eintrag hinzufügen"
End Sub
Public Class ComboBoxItem
Public Property ID As Integer
Public Property DisplayText As String
Public Overrides Function ToString() As String
Return DisplayText
End Function
End Class
Private Sub cmbTvTextBezeichnungAuswahl_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbTvTextBezeichnungAuswahl.SelectedIndexChanged
If isInitializing Then
Return
End If
If cmbTvTextBezeichnungAuswahl.SelectedValue Is Nothing OrElse cmbTvTextBezeichnungAuswahl.SelectedValue Is DBNull.Value Then
Return
End If
Try
Dim selectedTvTextBezeichnungID As Integer
Try
selectedTvTextBezeichnungID = Convert.ToInt32(cmbTvTextBezeichnungAuswahl.SelectedValue)
Debug.WriteLine("Selected TvTextBezeichnungID: " & selectedTvTextBezeichnungID)
Catch ex As Exception
MessageBox.Show("Ungültiger Wert für TvTextBezeichnungID: " & ex.Message, "Konvertierungsfehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
Return
End Try
If listAll Is Nothing OrElse Not listAll.Any() Then
MessageBox.Show("Die Liste aller AvisoEinträge ist nicht geladen oder leer.", "Datenfehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
Return
End If
Dim selectedAviso As cAvisoTvNew = listAll.FirstOrDefault(Function(x) x.TvTextBezeichnungID = selectedTvTextBezeichnungID AndAlso x.IsActive)
Dim currentStandort As String = cbxStandort.SelectedItem?.ToString()
Dim currentStandortID As Integer = AvisoTvNewDAL.GetStandortID(currentStandort)
If selectedAviso IsNot Nothing Then
Debug.WriteLine("Gefundenes Aviso: TVID = " & selectedAviso.TvTextBezeichnungID)
myAvisoTvNew = selectedAviso
Neuanlage = False
FillFieldsFromAviso(selectedAviso)
Me.Text = "Eintrag bearbeiten"
txtNeueTvTextBezeichnung.Text = ""
Else
Debug.WriteLine("Kein bestehender Eintrag gefunden. Neuer Eintrag wird erstellt.")
myAvisoTvNew = New cAvisoTvNew() With {
.IsActive = True,
.StandortID = currentStandortID,
.Standort = currentStandort
}
Neuanlage = True
Me.Text = "Neuen Eintrag hinzufügen"
End If
Catch ex As InvalidCastException
MessageBox.Show("Fehler beim Konvertieren der TvTextBezeichnungID: " & ex.Message, "Konvertierungsfehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
Catch ex As Exception
MessageBox.Show("Ein unerwarteter Fehler ist aufgetreten: " & ex.Message, "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Private Sub InitializeFontComboBoxes()
Dim fontFamilies As New List(Of String)()
For Each font As FontFamily In FontFamily.Families
fontFamilies.Add(font.Name)
Next
' Initialisierung für Zeile 1
cmbFontFamily.DataSource = fontFamilies
cmbFontFamily.SelectedItem = rtbZeile1.Font.FontFamily.Name
Dim sizes As Integer() = {8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72}
cmbFontSize.DataSource = sizes.Select(Function(s) s.ToString()).ToList()
cmbFontSize.SelectedItem = CInt(rtbZeile1.Font.Size).ToString()
AddHandler cmbFontFamily.SelectedIndexChanged, AddressOf cmbFontFamily_SelectedIndexChanged
AddHandler cmbFontSize.SelectedIndexChanged, AddressOf cmbFontSize_SelectedIndexChanged
' Initialisierung für Zeile 2
cmbFontFamily2.DataSource = New List(Of String)(fontFamilies)
cmbFontFamily2.SelectedItem = rtbZeile2.Font.FontFamily.Name
cmbFontSize2.DataSource = sizes.Select(Function(s) s.ToString()).ToList()
cmbFontSize2.SelectedItem = CInt(rtbZeile2.Font.Size).ToString()
AddHandler cmbFontFamily2.SelectedIndexChanged, AddressOf cmbFontFamily2_SelectedIndexChanged
AddHandler cmbFontSize2.SelectedIndexChanged, AddressOf cmbFontSize2_SelectedIndexChanged
' Initialisierung für Zeile 3
cmbFontFamily3.DataSource = New List(Of String)(fontFamilies)
cmbFontFamily3.SelectedItem = rtbZeile3.Font.FontFamily.Name
cmbFontSize3.DataSource = sizes.Select(Function(s) s.ToString()).ToList()
cmbFontSize3.SelectedItem = CInt(rtbZeile3.Font.Size).ToString()
AddHandler cmbFontFamily3.SelectedIndexChanged, AddressOf cmbFontFamily3_SelectedIndexChanged
AddHandler cmbFontSize3.SelectedIndexChanged, AddressOf cmbFontSize3_SelectedIndexChanged
End Sub
' Schriftfamilie ComboBox SelectionChanged
Private Sub cmbFontFamily_SelectedIndexChanged(sender As Object, e As EventArgs)
UpdateFont()
End Sub
' Schriftgröße ComboBox SelectionChanged
Private Sub cmbFontSize_SelectedIndexChanged(sender As Object, e As EventArgs)
UpdateFont()
End Sub
Private Sub UpdateFont()
Dim selectedFontFamily As String = If(cmbFontFamily.SelectedItem, rtbZeile1.SelectionFont?.FontFamily.Name)
Dim selectedFontSize As Single
If Single.TryParse(cmbFontSize.SelectedItem, selectedFontSize) Then
' Überprüfen, ob eine Auswahl vorhanden ist
If rtbZeile1.SelectionLength > 0 Then
' Erstellen einer neuen Schriftart basierend auf der Auswahl
Dim currentFont As Font = rtbZeile1.SelectionFont
If currentFont IsNot Nothing Then
rtbZeile1.SelectionFont = New Font(selectedFontFamily, selectedFontSize, currentFont.Style)
Else
' Wenn die Auswahl unterschiedliche Schriftarten hat, eine neue Schriftart setzen
rtbZeile1.SelectionFont = New Font(selectedFontFamily, selectedFontSize)
End If
Else
' Wenn keine Auswahl vorhanden ist, setzen Sie die Standard-Schriftart der RichTextBox
rtbZeile1.Font = New Font(selectedFontFamily, selectedFontSize, rtbZeile1.Font.Style)
End If
hatAenderung = True
End If
End Sub
' Methode zum Umschalten des Schriftstils
Private Sub ToggleFontStyle(style As FontStyle)
If rtbZeile1.SelectionFont IsNot Nothing Then
Dim currentFont As Font = rtbZeile1.SelectionFont
Dim newFontStyle As FontStyle
If rtbZeile1.SelectionFont.Style.HasFlag(style) Then
' Entferne den Stil
newFontStyle = currentFont.Style And Not style
Else
' Füge den Stil hinzu
newFontStyle = currentFont.Style Or style
End If
' Setze die neue Schriftart
rtbZeile1.SelectionFont = New Font(currentFont.FontFamily, currentFont.Size, newFontStyle)
hatAenderung = True
End If
End Sub
' Fett (Bold) Button Click
Private Sub btnBold_Click(sender As Object, e As EventArgs) Handles btnBold.Click
ToggleFontStyle(FontStyle.Bold)
End Sub
' Kursiv (Italic) Button Click
Private Sub btnItalic_Click(sender As Object, e As EventArgs) Handles btnItalic.Click
ToggleFontStyle(FontStyle.Italic)
End Sub
' Unterstrichen (Underline) Button Click
Private Sub btnUnderline_Click(sender As Object, e As EventArgs) Handles btnUnderline.Click
ToggleFontStyle(FontStyle.Underline)
End Sub
' Textfarbe ändern Button Click
Private Sub btnTextColor_Click(sender As Object, e As EventArgs) Handles btnTextColor.Click
If colorDialogText.ShowDialog() = DialogResult.OK Then
rtbZeile1.SelectionColor = colorDialogText.Color
hatAenderung = True
End If
End Sub
' Hintergrundfarbe ändern Button Click
Private Sub btnBackColor_Click(sender As Object, e As EventArgs) Handles btnBackColor.Click
If colorDialogText.ShowDialog() = DialogResult.OK Then
rtbZeile1.SelectionBackColor = colorDialogText.Color
hatAenderung = True
End If
End Sub
' Links ausrichten Button Click
Private Sub btnAlignLeft_Click(sender As Object, e As EventArgs) Handles btnAlignLeft.Click
rtbZeile1.SelectionAlignment = HorizontalAlignment.Left
hatAenderung = True
End Sub
' Mitte ausrichten Button Click
Private Sub btnAlignCenter_Click(sender As Object, e As EventArgs) Handles btnAlignCenter.Click
rtbZeile1.SelectionAlignment = HorizontalAlignment.Center
hatAenderung = True
End Sub
' Rechts ausrichten Button Click
Private Sub btnAlignRight_Click(sender As Object, e As EventArgs) Handles btnAlignRight.Click
rtbZeile1.SelectionAlignment = HorizontalAlignment.Right
hatAenderung = True
End Sub
' Schriftfamilie ComboBox SelectionChanged
Private Sub cmbFontFamily2_SelectedIndexChanged(sender As Object, e As EventArgs)
UpdateFont2()
End Sub
' Schriftgröße ComboBox SelectionChanged
Private Sub cmbFontSize2_SelectedIndexChanged(sender As Object, e As EventArgs)
UpdateFont2()
End Sub
Private Sub UpdateFont2()
Dim selectedFontFamily As String = If(cmbFontFamily2.SelectedItem, rtbZeile2.SelectionFont?.FontFamily.Name)
Dim selectedFontSize As Single
If Single.TryParse(cmbFontSize2.SelectedItem, selectedFontSize) Then
' Überprüfen, ob eine Auswahl vorhanden ist
If rtbZeile2.SelectionLength > 0 Then
' Erstellen einer neuen Schriftart basierend auf der Auswahl
Dim currentFont As Font = rtbZeile2.SelectionFont
If currentFont IsNot Nothing Then
rtbZeile2.SelectionFont = New Font(selectedFontFamily, selectedFontSize, currentFont.Style)
Else
' Wenn die Auswahl unterschiedliche Schriftarten hat, eine neue Schriftart setzen
rtbZeile2.SelectionFont = New Font(selectedFontFamily, selectedFontSize)
End If
Else
' Wenn keine Auswahl vorhanden ist, setzen Sie die Standard-Schriftart der RichTextBox
rtbZeile2.Font = New Font(selectedFontFamily, selectedFontSize, rtbZeile2.Font.Style)
End If
hatAenderung = True
End If
End Sub
' Methode zum Umschalten des Schriftstils
Private Sub ToggleFontStyle2(style As FontStyle)
If rtbZeile2.SelectionFont IsNot Nothing Then
Dim currentFont As Font = rtbZeile2.SelectionFont
Dim newFontStyle As FontStyle
If rtbZeile2.SelectionFont.Style.HasFlag(style) Then
' Entferne den Stil
newFontStyle = currentFont.Style And Not style
Else
' Füge den Stil hinzu
newFontStyle = currentFont.Style Or style
End If
' Setze die neue Schriftart
rtbZeile2.SelectionFont = New Font(currentFont.FontFamily, currentFont.Size, newFontStyle)
hatAenderung = True
End If
End Sub
' Fett (Bold) Button Click
Private Sub btnBold2_Click(sender As Object, e As EventArgs) Handles btnBold2.Click
ToggleFontStyle2(FontStyle.Bold)
End Sub
' Kursiv (Italic) Button Click
Private Sub btnItalic2_Click(sender As Object, e As EventArgs) Handles btnItalic2.Click
ToggleFontStyle2(FontStyle.Italic)
End Sub
' Unterstrichen (Underline) Button Click
Private Sub btnUnderline2_Click(sender As Object, e As EventArgs) Handles btnUnderline2.Click
ToggleFontStyle2(FontStyle.Underline)
End Sub
' Textfarbe ändern Button Click
Private Sub btnTextColor2_Click(sender As Object, e As EventArgs) Handles btnTextColor2.Click
If colorDialogText.ShowDialog() = DialogResult.OK Then
rtbZeile2.SelectionColor = colorDialogText.Color
hatAenderung = True
End If
End Sub
' Hintergrundfarbe ändern Button Click
Private Sub btnBackColor2_Click(sender As Object, e As EventArgs) Handles btnBackColor2.Click
If colorDialogText.ShowDialog() = DialogResult.OK Then
rtbZeile2.SelectionBackColor = colorDialogText.Color
hatAenderung = True
End If
End Sub
' Links ausrichten Button Click
Private Sub btnAlignLeft2_Click(sender As Object, e As EventArgs) Handles btnAlignLeft2.Click
rtbZeile2.SelectionAlignment = HorizontalAlignment.Left
hatAenderung = True
End Sub
' Mitte ausrichten Button Click
Private Sub btnAlignCenter2_Click(sender As Object, e As EventArgs) Handles btnAlignCenter2.Click
rtbZeile2.SelectionAlignment = HorizontalAlignment.Center
hatAenderung = True
End Sub
' Rechts ausrichten Button Click
Private Sub btnAlignRight2_Click(sender As Object, e As EventArgs) Handles btnAlignRight2.Click
rtbZeile2.SelectionAlignment = HorizontalAlignment.Right
hatAenderung = True
End Sub
' Schriftfamilie ComboBox SelectionChanged
Private Sub cmbFontFamily3_SelectedIndexChanged(sender As Object, e As EventArgs)
UpdateFont3()
End Sub
' Schriftgröße ComboBox SelectionChanged
Private Sub cmbFontSize3_SelectedIndexChanged(sender As Object, e As EventArgs)
UpdateFont3()
End Sub
Private Sub UpdateFont3()
Dim selectedFontFamily As String = If(cmbFontFamily3.SelectedItem, rtbZeile3.SelectionFont?.FontFamily.Name)
Dim selectedFontSize As Single
If Single.TryParse(cmbFontSize3.SelectedItem, selectedFontSize) Then
' Überprüfen, ob eine Auswahl vorhanden ist
If rtbZeile3.SelectionLength > 0 Then
' Erstellen einer neuen Schriftart basierend auf der Auswahl
Dim currentFont As Font = rtbZeile3.SelectionFont
If currentFont IsNot Nothing Then
rtbZeile3.SelectionFont = New Font(selectedFontFamily, selectedFontSize, currentFont.Style)
Else
' Wenn die Auswahl unterschiedliche Schriftarten hat, eine neue Schriftart setzen
rtbZeile3.SelectionFont = New Font(selectedFontFamily, selectedFontSize)
End If
Else
' Wenn keine Auswahl vorhanden ist, setzen Sie die Standard-Schriftart der RichTextBox
rtbZeile3.Font = New Font(selectedFontFamily, selectedFontSize, rtbZeile3.Font.Style)
End If
hatAenderung = True
End If
End Sub
' Methode zum Umschalten des Schriftstils
Private Sub ToggleFontStyle3(style As FontStyle)
If rtbZeile3.SelectionFont IsNot Nothing Then
Dim currentFont As Font = rtbZeile3.SelectionFont
Dim newFontStyle As FontStyle
If rtbZeile3.SelectionFont.Style.HasFlag(style) Then
' Entferne den Stil
newFontStyle = currentFont.Style And Not style
Else
' Füge den Stil hinzu
newFontStyle = currentFont.Style Or style
End If
' Setze die neue Schriftart
rtbZeile3.SelectionFont = New Font(currentFont.FontFamily, currentFont.Size, newFontStyle)
hatAenderung = True
End If
End Sub
' Fett (Bold) Button Click
Private Sub btnBold3_Click(sender As Object, e As EventArgs) Handles btnBold3.Click
ToggleFontStyle3(FontStyle.Bold)
End Sub
' Kursiv (Italic) Button Click
Private Sub btnItalic3_Click(sender As Object, e As EventArgs) Handles btnItalic3.Click
ToggleFontStyle3(FontStyle.Italic)
End Sub
' Unterstrichen (Underline) Button Click
Private Sub btnUnderline3_Click(sender As Object, e As EventArgs) Handles btnUnderline3.Click
ToggleFontStyle3(FontStyle.Underline)
End Sub
' Textfarbe ändern Button Click
Private Sub btnTextColor3_Click(sender As Object, e As EventArgs) Handles btnTextColor3.Click
If colorDialogText.ShowDialog() = DialogResult.OK Then
rtbZeile3.SelectionColor = colorDialogText.Color
hatAenderung = True
End If
End Sub
' Hintergrundfarbe ändern Button Click
Private Sub btnBackColor3_Click(sender As Object, e As EventArgs) Handles btnBackColor3.Click
If colorDialogText.ShowDialog() = DialogResult.OK Then
rtbZeile3.SelectionBackColor = colorDialogText.Color
hatAenderung = True
End If
End Sub
' Links ausrichten Button Click
Private Sub btnAlignLeft3_Click(sender As Object, e As EventArgs) Handles btnAlignLeft3.Click
rtbZeile3.SelectionAlignment = HorizontalAlignment.Left
hatAenderung = True
End Sub
' Mitte ausrichten Button Click
Private Sub btnAlignCenter3_Click(sender As Object, e As EventArgs) Handles btnAlignCenter3.Click
rtbZeile3.SelectionAlignment = HorizontalAlignment.Center
hatAenderung = True
End Sub
' Rechts ausrichten Button Click
Private Sub btnAlignRight3_Click(sender As Object, e As EventArgs) Handles btnAlignRight3.Click
rtbZeile3.SelectionAlignment = HorizontalAlignment.Right
hatAenderung = True
End Sub
Private Sub LadeTvTextBezeichnungen()
isInitializing = True
Dim bezeichnungen As New List(Of cTvTextBezeichnung)()
Try
bezeichnungen = AvisoTvNewDAL.LadenAlleTvTextBezeichnungen()
Catch ex As Exception
MessageBox.Show("Fehler beim Laden der TvTextBezeichnungen: " & ex.Message, "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
isInitializing = False
Return
End Try
Dim items As New List(Of ComboBoxItem)()
For Each bezeichnung In bezeichnungen
items.Add(New ComboBoxItem() With {
.ID = bezeichnung.TvTextBezeichnungID,
.DisplayText = bezeichnung.TvTextBezeichnung
})
Next
cmbTvTextBezeichnungAuswahl.DataSource = items
cmbTvTextBezeichnungAuswahl.DisplayMember = "DisplayText"
cmbTvTextBezeichnungAuswahl.ValueMember = "ID"
cmbTvTextBezeichnungAuswahl.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
cmbTvTextBezeichnungAuswahl.SelectedIndex = -1
cmbPosition.SelectedIndex = -1
isInitializing = False
Debug.WriteLine("TvTextBezeichnungen geladen:")
For Each item In items
Debug.WriteLine($"ID: {item.ID}, Text: {item.DisplayText}")
Next
End Sub
Private Sub txtNeueTvTextBezeichnung_TextChanged(sender As Object, e As EventArgs) Handles txtNeueTvTextBezeichnung.TextChanged
If Not String.IsNullOrWhiteSpace(txtNeueTvTextBezeichnung.Text) Then
cmbTvTextBezeichnungAuswahl.SelectedIndex = -1
myAvisoTvNew = New cAvisoTvNew() With {
.TvTextBezeichnung = txtNeueTvTextBezeichnung.Text.Trim(),
.IsActive = True
}
Neuanlage = True
Me.Text = "Neuen Eintrag hinzufügen"
End If
End Sub
Private Sub FillFieldsFromAviso(ByVal aviso As cAvisoTvNew)
cmbTvTextBezeichnungAuswahl.SelectedValue = aviso.TvTextBezeichnungID
If Not String.IsNullOrEmpty(aviso.Position) Then
cmbPosition.SelectedItem = aviso.Position
Else
cmbPosition.SelectedIndex = -1
End If
txtNeueTvTextBezeichnung.Text = ""
' Hier setzt du die Textzeilen, wenn vorhanden
rtbZeile1.Rtf = aviso.FixeZeile1RTF
rtbZeile2.Rtf = aviso.FixeZeile2RTF
rtbZeile3.Rtf = aviso.FixeZeile3RTF
chkIsRecurring.Checked = aviso.IsRecurring.GetValueOrDefault(False)
If aviso.StartDate.HasValue Then
dtpStartDate.Value = aviso.StartDate.Value
dtpStartDate.Checked = True
Else
dtpStartDate.Value = DateTime.Now
dtpStartDate.Checked = False
End If
If aviso.EndDate.HasValue Then
dtpEndDate.Value = aviso.EndDate.Value
dtpEndDate.Checked = True
Else
dtpEndDate.Value = DateTime.Now
dtpEndDate.Checked = False
End If
If aviso.StartTime.HasValue Then
dtpStartTime.Value = DateTime.Today.Add(aviso.StartTime.Value)
dtpStartTime.Checked = True
Else
dtpStartTime.Value = DateTime.Now
dtpStartTime.Checked = False
End If
If aviso.EndTime.HasValue Then
dtpEndTime.Value = DateTime.Today.Add(aviso.EndTime.Value)
dtpEndTime.Checked = True
Else
dtpEndTime.Value = DateTime.Now
dtpEndTime.Checked = False
End If
chkMonday.Checked = aviso.IsMonday.GetValueOrDefault(False)
chkTuesday.Checked = aviso.IsTuesday.GetValueOrDefault(False)
chkWednesday.Checked = aviso.IsWednesday.GetValueOrDefault(False)
chkThursday.Checked = aviso.IsThursday.GetValueOrDefault(False)
chkFriday.Checked = aviso.IsFriday.GetValueOrDefault(False)
chkSaturday.Checked = aviso.IsSaturday.GetValueOrDefault(False)
chkSunday.Checked = aviso.IsSunday.GetValueOrDefault(False)
chkIsActive.Checked = aviso.IsActive
grpWochentage.Enabled = chkIsRecurring.Checked
End Sub
Private Function ConvertRtfToHtml(rtf As String) As String
Using rtb As New RichTextBox()
rtb.Rtf = rtf
Dim sb As New System.Text.StringBuilder()
' Initialisiere die HTML-Struktur
sb.Append("<html><body>")
' Teile den Text in Absätze auf
Dim paragraphs As String() = rtb.Text.Split(New String() {vbCrLf, vbLf}, StringSplitOptions.None)
Dim charIndex As Integer = 0
For Each paragraph As String In paragraphs
' Wähle den aktuellen Absatz aus
rtb.Select(charIndex, paragraph.Length)
' Erhalte die Ausrichtung des aktuellen Absatzes
Dim alignment As HorizontalAlignment = rtb.SelectionAlignment
' Öffne einen Div-Tag mit der entsprechenden Textausrichtung
Select Case alignment
Case HorizontalAlignment.Left
sb.Append("<div style=""text-align:left;"">")
Case HorizontalAlignment.Center
sb.Append("<div style=""text-align:center;"">")
Case HorizontalAlignment.Right
sb.Append("<div style=""text-align:right;"">")
Case Else
sb.Append("<div>")
End Select
' Setze die aktuellen Formatierungsvariablen auf Nothing/Empty, um beim ersten Zeichen zu starten
Dim currentFont As System.Drawing.Font = Nothing
Dim currentColor As Color = Color.Empty
Dim currentBackColor As Color = Color.Empty
Dim currentBold As Boolean = False
Dim currentItalic As Boolean = False
Dim currentUnderline As Boolean = False
' Iteriere durch die Zeichen im Absatz
For i As Integer = 0 To paragraph.Length - 1
Dim globalIndex As Integer = charIndex + i
rtb.Select(globalIndex, 1)
Dim font As System.Drawing.Font = rtb.SelectionFont
Dim color As Color = rtb.SelectionColor
Dim backColor As Color = rtb.SelectionBackColor
' Bestimme die Schriftstile
Dim isBold As Boolean = font IsNot Nothing AndAlso font.Bold
Dim isItalic As Boolean = font IsNot Nothing AndAlso font.Italic
Dim isUnderline As Boolean = font IsNot Nothing AndAlso font.Underline
' Überprüfe, ob sich die Formatierung geändert hat
If font IsNot currentFont OrElse color <> currentColor OrElse backColor <> currentBackColor OrElse isBold <> currentBold OrElse isItalic <> currentItalic OrElse isUnderline <> currentUnderline Then
' Schließe vorherige Font-, Farb- und Hintergrundfarb-Tags
If currentFont IsNot Nothing OrElse color <> Color.Empty OrElse backColor <> Color.Empty OrElse currentBold OrElse currentItalic OrElse currentUnderline Then
sb.Append("</span>")
End If
' Öffne ein neues Span-Tag mit den aktuellen Stilen
Dim style As New System.Text.StringBuilder()
If font IsNot Nothing Then
style.Append($"font-family:{font.FontFamily.Name}; ")
style.Append($"font-size:{font.SizeInPoints}pt; ")
End If
If color <> Color.Empty Then
style.Append($"color:{ColorTranslator.ToHtml(color)}; ")
End If
If backColor <> Color.Empty Then
style.Append($"background-color:{ColorTranslator.ToHtml(backColor)}; ")
End If
If isBold Then
style.Append($"font-weight:bold; ")
End If
If isItalic Then
style.Append($"font-style:italic; ")
End If
If isUnderline Then
style.Append($"text-decoration:underline; ")
End If
If style.Length > 0 Then
sb.Append($"<span style=""{style.ToString().Trim()}"">")
End If
' Aktualisiere die aktuellen Formatierungsvariablen
currentFont = font
currentColor = color
currentBackColor = backColor
currentBold = isBold
currentItalic = isItalic
currentUnderline = isUnderline
End If
' Füge das aktuelle Zeichen hinzu (HTML-encodiert)
Dim currentChar As Char = paragraph(i)
Select Case currentChar
Case "<"
sb.Append("&lt;")
Case ">"
sb.Append("&gt;")
Case "&"
sb.Append("&amp;")
Case Else
sb.Append(currentChar)
End Select
Next
' Schließe verbleibende Tags im Absatz
If currentFont IsNot Nothing OrElse currentColor <> Color.Empty OrElse currentBackColor <> Color.Empty OrElse currentBold OrElse currentItalic OrElse currentUnderline Then
sb.Append("</span>")
End If
' Schließe den Div-Tag für den Absatz
sb.Append("</div>")
' Aktualisiere den charIndex für den nächsten Absatz (+2 für vbCrLf, könnte je nach Zeilenumbrüchen variieren)
' Überprüfe den tatsächlichen Zeilenumbruch und passe gegebenenfalls an
If charIndex + paragraph.Length + 2 <= rtb.Text.Length Then
charIndex += paragraph.Length + 2 ' Annahme: \r\n als Zeilenumbruch
Else
charIndex += paragraph.Length
End If
Next
sb.Append("</body></html>")
Return sb.ToString()
End Using
End Function
Private Sub btnSpeichern_Click(sender As Object, e As EventArgs) Handles btnSpeichern.Click
Dim verwendeteTvTextBezeichnung As String = ""
Dim isNeueTvTextBezeichnung As Boolean = False
Dim currentStandort As String = cbxStandort.SelectedItem?.ToString()
Dim currentStandortID As Integer = 0
If Not String.IsNullOrEmpty(currentStandort) Then
currentStandortID = AvisoTvNewDAL.GetStandortID(currentStandort)
End If
If currentStandortID = 0 Then
MessageBox.Show("Ungültiger Standort ausgewählt.", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
Return
End If
Dim selectedTvTextBezeichnungID As Integer = 0
If cmbTvTextBezeichnungAuswahl.SelectedIndex >= 0 AndAlso String.IsNullOrWhiteSpace(txtNeueTvTextBezeichnung.Text) Then
verwendeteTvTextBezeichnung = cmbTvTextBezeichnungAuswahl.Text
selectedTvTextBezeichnungID = Convert.ToInt32(cmbTvTextBezeichnungAuswahl.SelectedValue)
ElseIf Not String.IsNullOrWhiteSpace(txtNeueTvTextBezeichnung.Text) Then
verwendeteTvTextBezeichnung = txtNeueTvTextBezeichnung.Text.Trim()
isNeueTvTextBezeichnung = True
Else
MessageBox.Show("Bitte wählen Sie eine TvTextBezeichnung aus oder geben Sie eine neue TvTextBezeichnung ein.", "Eingabefehler", MessageBoxButtons.OK, MessageBoxIcon.Warning)
cmbTvTextBezeichnungAuswahl.Focus()
Exit Sub
End If
Try
' **Speichern der TVID der aktuell ausgewählten Zeile**
If dgvAVISOTV.CurrentRow IsNot Nothing AndAlso dgvAVISOTV.CurrentRow.DataBoundItem IsNot Nothing Then
Dim selectedAviso As cAvisoTvNew = CType(dgvAVISOTV.CurrentRow.DataBoundItem, cAvisoTvNew)
If selectedAviso IsNot Nothing Then
lastSelectedTVID = selectedAviso.TvTextBezeichnungID
End If
End If
' Konvertiere RTF zu HTML
Dim rtfContent As String = rtbZeile1.Rtf
Dim htmlContent As String = ConvertRtfToHtml(rtfContent)
Dim rtfContent2 As String = rtbZeile2.Rtf
Dim htmlContent2 As String = ConvertRtfToHtml(rtfContent2)
Dim rtfContent3 As String = rtbZeile3.Rtf
Dim htmlContent3 As String = ConvertRtfToHtml(rtfContent3)
myAvisoTvNew.TvTextBezeichnung = verwendeteTvTextBezeichnung
myAvisoTvNew.StandortID = currentStandortID
If cmbPosition.SelectedIndex >= 0 Then
myAvisoTvNew.Position = cmbPosition.SelectedItem.ToString()
Else
myAvisoTvNew.Position = Nothing
End If
If isNeueTvTextBezeichnung Then
If AvisoTvNewDAL.IstTvTextBezeichnungVorhanden(myAvisoTvNew.TvTextBezeichnung) Then
MessageBox.Show("Die TvTextBezeichnung ist vorhanden. Bitte wählen Sie eine eindeutige TvTextBezeichnung.", "Eingabefehler", MessageBoxButtons.OK, MessageBoxIcon.Warning)
txtNeueTvTextBezeichnung.Focus()
Exit Sub
End If
Else
myAvisoTvNew.TvTextBezeichnungID = selectedTvTextBezeichnungID
End If
' Speichere den HTML-Inhalt
myAvisoTvNew.FixeZeile1RTF = If(String.IsNullOrWhiteSpace(rtbZeile1.Text), Nothing, rtfContent)
myAvisoTvNew.FixeZeile1HTML = If(String.IsNullOrWhiteSpace(rtbZeile1.Text), Nothing, htmlContent)
myAvisoTvNew.FixeZeile2RTF = If(String.IsNullOrWhiteSpace(rtbZeile2.Text), Nothing, rtfContent2)
myAvisoTvNew.FixeZeile2HTML = If(String.IsNullOrWhiteSpace(rtbZeile2.Text), Nothing, htmlContent2)
myAvisoTvNew.FixeZeile3RTF = If(String.IsNullOrWhiteSpace(rtbZeile3.Text), Nothing, rtfContent3)
myAvisoTvNew.FixeZeile3HTML = If(String.IsNullOrWhiteSpace(rtbZeile3.Text), Nothing, htmlContent3)
myAvisoTvNew.IsRecurring = chkIsRecurring.Checked
myAvisoTvNew.StartDate = If(dtpStartDate.Checked, CType(dtpStartDate.Value.Date, Date?), Nothing)
myAvisoTvNew.EndDate = If(dtpEndDate.Checked, CType(dtpEndDate.Value.Date, Date?), Nothing)
myAvisoTvNew.StartTime = If(dtpStartTime.Checked, CType(dtpStartTime.Value.TimeOfDay, TimeSpan?), Nothing)
myAvisoTvNew.EndTime = If(dtpEndTime.Checked, CType(dtpEndTime.Value.TimeOfDay, TimeSpan?), Nothing)
myAvisoTvNew.IsMonday = chkMonday.Checked
myAvisoTvNew.IsTuesday = chkTuesday.Checked
myAvisoTvNew.IsWednesday = chkWednesday.Checked
myAvisoTvNew.IsThursday = chkThursday.Checked
myAvisoTvNew.IsFriday = chkFriday.Checked
myAvisoTvNew.IsSaturday = chkSaturday.Checked
myAvisoTvNew.IsSunday = chkSunday.Checked
myAvisoTvNew.IsActive = chkIsActive.Checked
If Neuanlage Then
myAvisoTvNew.Standort = cbxStandort.SelectedItem?.ToString()
If String.IsNullOrEmpty(myAvisoTvNew.Standort) Then
MessageBox.Show("Bitte wählen Sie einen Standort aus.", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Warning)
Return
End If
End If
Debug.WriteLine($"Speichern: TVID = {myAvisoTvNew.TvTextBezeichnungID}, TvTextBezeichnungID = {myAvisoTvNew.TvTextBezeichnungID}, StandortID = {myAvisoTvNew.StandortID}")
' Speichern der Einstellungen
AvisoTvNewDAL.SpeichernAvisoTvNew(myAvisoTvNew)
LadeTvTextBezeichnungen()
list.Clear()
AvisoTvNewDAL.LesenAvisoTvNew(0, "", currentStandort, list)
' **Nach dem Speichern und Neuladen der Daten**
initdgv()
hatAenderung = False
If isNeueTvTextBezeichnung Then
' **Setze lastSelectedTVID auf die TVID des neuen Eintrags**
lastSelectedTVID = myAvisoTvNew.TvTextBezeichnungID
MessageBox.Show("Die neue TvTextBezeichnung wurde erfolgreich gespeichert.", "Erfolg", MessageBoxButtons.OK, MessageBoxIcon.Information)
cmbTvTextBezeichnungAuswahl.SelectedValue = myAvisoTvNew.TvTextBezeichnungID
txtNeueTvTextBezeichnung.Text = ""
Else
MessageBox.Show("Die Änderungen wurden erfolgreich gespeichert.", "Erfolg", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
Catch ex As Exception
MessageBox.Show("Fehler beim Speichern der Daten: " & ex.Message, "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Private Sub btnLoeschen_Click(sender As Object, e As EventArgs) Handles btnLoeschen.Click
If myAvisoTvNew Is Nothing OrElse myAvisoTvNew.TvTextBezeichnungID = 0 Then
MessageBox.Show("Bitte wählen Sie einen Eintrag zum Deaktivieren aus.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)
Return
End If
Dim antwort As DialogResult = MessageBox.Show("Möchten Sie den ausgewählten Eintrag wirklich deaktivieren?", "Deaktivieren bestätigen", MessageBoxButtons.YesNo, MessageBoxIcon.Warning)
If antwort = DialogResult.Yes Then
Try
AvisoTvNewDAL.SetzeAufInaktiv(myAvisoTvNew.TvTextBezeichnungID)
list.Clear()
AvisoTvNewDAL.LesenAvisoTvNew(0, "", cbxStandort.SelectedItem?.ToString(), list)
initdgv()
ClearFields()
myAvisoTvNew = Nothing
Neuanlage = False
hatAenderung = False
MessageBox.Show("Der Eintrag wurde erfolgreich deaktiviert.", "Erfolg", MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch ex As Exception
MessageBox.Show("Fehler beim Deaktivieren des Eintrags: " & ex.Message, "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End If
End Sub
Private Sub dgvAVISOTV_SelectionChanged(sender As Object, e As EventArgs) Handles dgvAVISOTV.SelectionChanged
If dgvAVISOTV.CurrentRow IsNot Nothing AndAlso dgvAVISOTV.CurrentRow.DataBoundItem IsNot Nothing Then
Dim selectedAviso As cAvisoTvNew = CType(dgvAVISOTV.CurrentRow.DataBoundItem, cAvisoTvNew)
If selectedAviso IsNot Nothing Then
myAvisoTvNew = selectedAviso
FillFieldsFromAviso(selectedAviso)
Neuanlage = False
hatAenderung = False
Me.Text = "Eintrag bearbeiten"
End If
End If
End Sub
Private Sub btnAbbrechen_Click(sender As Object, e As EventArgs) Handles btnAbbrechen.Click
If hatAenderung Then
Dim antwort As DialogResult = MessageBox.Show("Es liegen ungespeicherte Änderungen vor. Möchten Sie das Fenster trotzdem schließen?", "Ungespeicherte Änderungen", MessageBoxButtons.YesNo, MessageBoxIcon.Warning)
If antwort = DialogResult.No Then Exit Sub
End If
Me.Close()
End Sub
Private Sub txt_TextChanged(sender As Object, e As EventArgs) Handles rtbZeile1.TextChanged, dtpStartDate.ValueChanged, dtpEndDate.ValueChanged, dtpStartTime.ValueChanged, dtpEndTime.ValueChanged, chkIsRecurring.CheckedChanged, chkMonday.CheckedChanged, chkTuesday.CheckedChanged, chkWednesday.CheckedChanged, chkThursday.CheckedChanged, chkFriday.CheckedChanged, chkSaturday.CheckedChanged, chkSunday.CheckedChanged, chkIsActive.CheckedChanged, cmbTvTextBezeichnungAuswahl.SelectedIndexChanged, txtNeueTvTextBezeichnung.TextChanged
hatAenderung = True
End Sub
Private Sub frmEintragTvNew_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
If hatAenderung Then
Dim antwort As DialogResult = MessageBox.Show("Es liegen ungespeicherte Änderungen vor. Möchten Sie das Fenster trotzdem schließen?", "Ungespeicherte Änderungen", MessageBoxButtons.YesNo, MessageBoxIcon.Warning)
If antwort = DialogResult.No Then e.Cancel = True
End If
End Sub
Private Sub chkIsRecurring_CheckedChanged(sender As Object, e As EventArgs) Handles chkIsRecurring.CheckedChanged
grpWochentage.Enabled = chkIsRecurring.Checked
End Sub
Private Sub ClearFields()
cmbTvTextBezeichnungAuswahl.SelectedIndex = -1
cmbPosition.SelectedIndex = -1
txtNeueTvTextBezeichnung.Text = ""
rtbZeile1.Text = ""
rtbZeile2.Text = ""
rtbZeile3.Text = ""
dtpStartDate.Value = DateTime.Now
dtpStartDate.Checked = False
dtpEndDate.Value = DateTime.Now
dtpEndDate.Checked = False
dtpStartTime.Value = DateTime.Now
dtpStartTime.Checked = False
dtpEndTime.Value = DateTime.Now
dtpEndTime.Checked = False
chkIsRecurring.Checked = False
chkMonday.Checked = False
chkTuesday.Checked = False
chkWednesday.Checked = False
chkThursday.Checked = False
chkFriday.Checked = False
chkSaturday.Checked = False
chkSunday.Checked = False
chkIsActive.Checked = True
grpWochentage.Enabled = False
End Sub
Private Sub chkShowInactive_CheckedChanged_1(sender As Object, e As EventArgs) Handles chkShowInactive.CheckedChanged
initdgv()
End Sub
End Class