Hi Ihr,
ich stecke wieder mal fest...
Eigentlich ganz einfach.
Gegeben sei ein Einstellungen-Fenster, in welchem verschiedene Programm-Einstellungen getätigt werden können.
Beim Anklicken des "OK"-Buttons werden die EInstellungen übernommen.
Beim Anklicken des "Cancel"-Buttons werden die Einstellungs-Änderungen verworfen.
Hierzu bediene ich mit Temp-Hilfsvariablen und sonstigen Elementen wie Specialized.StringCollection, um die Einstellungs-Änderungen auch mit "Cancel" verwerfen zu können und nur bei "OK" die korellierenden My.Settings-Inhalte mit den Temp-Hilfsvariablen zu überschreiben.
Folgender Code-Auszug:
Im Load-Handler
In der Sub SpeichereTabDateitypen
Also weise ich im Load-Handler der Kollektion tempDateitypen den Inhalt der Kollektion My.Settings.Dateitypen zu.
Beim Klickern auf den "OK"-Button der Einstellungen-Form wird die Sub SpeichereTabDateitypen aufgerufen und schreibt den Inhalt der (u.U. im Einstellungen-Fenster geänderten) Kollektion tempDateitypen in die Kollektion My.Settings.Dateitypen zurück.
Im Weiteren habe ich z.B. einen Handler
Darin wird der Eintrag in der Textbox txb_Dateitypen_AktDateityp in der Kollektion tempDateitypen gesucht und wenn vorhanden aus dieser gelöscht.
Soweit logisch hoffe ich.
Nur...
lasse ich mit der Schrittverfolgung diese Sub abarbeiten, stellt sich heraus, dass direkt durch das
sowohl die Kollektion tempDateitypen.count, als auch komischerweise gleichzeitig die Kollektion My.Settings.Dateitypen.count um 1 dekrementiert werden.
Das darf aber doch gar nicht sein, da ich zu keinem Zeitpunkt die Sub SpeichereTabDateitypen aufrufe, um die My.Settings.Dateitypen zu beeinflussen.
Der Haltepunkt in dieser Sub wird nicht ausgelöst.
Woran kann das liegen und wie beseitige ich dieses Problem?
Stehe mehr als auf dem Schlauch...
EDIT: Habe zur Verdeutlichung zwei Pics angeknotet.
Direkt Vor und nach dem "TempDateitypen.removeat(vara)"
ich stecke wieder mal fest...
Eigentlich ganz einfach.
Gegeben sei ein Einstellungen-Fenster, in welchem verschiedene Programm-Einstellungen getätigt werden können.
Beim Anklicken des "OK"-Buttons werden die EInstellungen übernommen.
Beim Anklicken des "Cancel"-Buttons werden die Einstellungs-Änderungen verworfen.
Hierzu bediene ich mit Temp-Hilfsvariablen und sonstigen Elementen wie Specialized.StringCollection, um die Einstellungs-Änderungen auch mit "Cancel" verwerfen zu können und nur bei "OK" die korellierenden My.Settings-Inhalte mit den Temp-Hilfsvariablen zu überschreiben.
Folgender Code-Auszug:
Im Load-Handler
In der Sub SpeichereTabDateitypen
Also weise ich im Load-Handler der Kollektion tempDateitypen den Inhalt der Kollektion My.Settings.Dateitypen zu.
Beim Klickern auf den "OK"-Button der Einstellungen-Form wird die Sub SpeichereTabDateitypen aufgerufen und schreibt den Inhalt der (u.U. im Einstellungen-Fenster geänderten) Kollektion tempDateitypen in die Kollektion My.Settings.Dateitypen zurück.
Im Weiteren habe ich z.B. einen Handler
VB.NET-Quellcode
- Private Sub Btn_Dateitypen_Entfernen_Click(sender As Object, e As EventArgs) Handles btn_Dateitypen_Entfernen.Click
- Dim teiler() As String
- Dim aktendung As String = txb_Dateitypen_AktDateityp.Text.ToLower
- Dim tmpAktDateiEndungIndex As Integer = aktDateiEndungIndex ' Sichere Selektion-Position in der Liste Datei-Endungen
- Dim form_Frage As New ICE_Eingabe
- Dim result As MsgBoxResult = MsgBoxResult.Yes
- If My.Settings.Fragen_VorLöschen = True Then
- result = form_Frage.Initialisiere(False, My.Resources.ICE_Common_ICEFrage, String.Format(My.Resources.ICE_Einstellungen_Dateitypen_FrageEndungEntfernen, aktendung, lib_Dateitypen_Dateitypen.Items(aktDateitypIndex)), MessageBoxButtons.YesNo, 64)
- End If
- If result = MsgBoxResult.Yes Then
- If aktendung.Substring(0, 1) = "." Then ' Punkt muss erstes Zeichen in der textbox txb_Dateitypen_AktDateityp.Text sein
- If lib_Dateitypen_DateiEndungen.Items.Contains(aktendung) Then ' wenn in der Liste Datei-Endungen der Inhalt der Textbox vorkommt
- For vara As Integer = 0 To tempDateitypen.Count - 1 ' Durchsuche Kollektion nach der Dateiendung
- teiler = Split(tempDateitypen(vara), ",")
- If teiler.Count = 2 Then
- If teiler(0).ToLower = aktendung Then ' wenn erstes Stringelement der Endung entspricht
- tempDateitypen.RemoveAt(vara) ' entferne String aus Kollektion
- AktualisiereLibDateiEndungen() ' Neubefüllen der Liste Datei-Endungen
- aktDateiEndungIndex = tmpAktDateiEndungIndex ' Hole gesicherte Selektionsposition für die neu befüllte Liste Datei-Endungen
- If lib_Dateitypen_DateiEndungen.Items.Count > aktDateiEndungIndex Then ' Wenn Liste Datei-Endungen count > gesicherte Position
- lib_Dateitypen_DateiEndungen.SelectedIndex = aktDateiEndungIndex ' selektiere Eintrag nach der gelöschten Endung
- Else
- aktDateiEndungIndex = lib_Dateitypen_DateiEndungen.Items.Count - 1 ' Hole Index des letzten Eintrags in der Liste Datei-Endungen
- lib_Dateitypen_DateiEndungen.SelectedIndex = aktDateiEndungIndex ' selektiere diesen Index
- End If
- AktualisiereAktEndung() ' Übertrage selektierte Endung aus der Liste Datei-Endungen in die Textbox
- Exit For
- End If
- End If
- Next
- Else
- Dim form_fehler As New ICE_Eingabe
- ' Endung nicht in Liste Datei-Endungen vorhanden
- form_fehler.Initialisiere(False, My.Resources.ICE_Common_ICEFehler, String.Format(My.Resources.ICE_Einstellungen_Dateitypen_FehlerEndung1, aktendung), MessageBoxButtons.OK, 8,, False)
- End If
- Else
- Dim form_fehler As New ICE_Eingabe
- ' Textbox erstes Zeichen nicht "."
- form_fehler.Initialisiere(False, My.Resources.ICE_Common_ICEFehler, My.Resources.ICE_Einstellungen_Dateitypen_FehlerEndung, MessageBoxButtons.OK, 8,, False)
- End If
- End If
- End Sub
Darin wird der Eintrag in der Textbox txb_Dateitypen_AktDateityp in der Kollektion tempDateitypen gesucht und wenn vorhanden aus dieser gelöscht.
Soweit logisch hoffe ich.
Nur...
lasse ich mit der Schrittverfolgung diese Sub abarbeiten, stellt sich heraus, dass direkt durch das
sowohl die Kollektion tempDateitypen.count, als auch komischerweise gleichzeitig die Kollektion My.Settings.Dateitypen.count um 1 dekrementiert werden.
Das darf aber doch gar nicht sein, da ich zu keinem Zeitpunkt die Sub SpeichereTabDateitypen aufrufe, um die My.Settings.Dateitypen zu beeinflussen.
Der Haltepunkt in dieser Sub wird nicht ausgelöst.
Woran kann das liegen und wie beseitige ich dieses Problem?
Stehe mehr als auf dem Schlauch...
EDIT: Habe zur Verdeutlichung zwei Pics angeknotet.
Direkt Vor und nach dem "TempDateitypen.removeat(vara)"
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Dideldum“ ()