Hi Ihr,
ich quäle mich etwas mit dem Umstieg vom VB6 auf das VB.net.
Aktuell habe ich folgendes Problem:
Das Programm liegt auf einem eingebundenen Netzwerkpfad, falls das wichtig sein sollte
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Try
If My.Settings.QuellPfad.Length = 0 Then
My.Settings.QuellPfad = "C:\"
End If
If My.Settings.MainLocation.IsEmpty Then
Me.Size = New System.Drawing.Size(800, 600)
Else
Me.Size = My.Settings.MainSize
Me.Location = My.Settings.MainLocation
End If
Catch ex As Exception
Debug.Assert(False)
Trace.WriteLine("Fehler: Wo: " & ex.StackTrace & " Was: " & _
ex.Message)
End Try
End Sub und
Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) _
Handles MyBase.FormClosing
Try
My.Settings.MainSize = Me.Size
My.Settings.MainLocation = Me.Location
My.Settings.Save()
Catch ex As Exception
Debug.Assert(False)
Trace.WriteLine("Fehler: Wo: " & ex.StackTrace & " Was: " & _
ex.Message)
End Try
End Sub Sollte m.E. funktionieren.
Aaaaaaber...
Beim Debuggen mit Einzelschritt werden im FormClosing den beiden My.Settings.Mainsize und My.Settings.MainLocation zwar die korrekten Werte von FensterPos und -Size übergeben.
Aber im Programmfolder bleibt die Dateiname.config unverändert bzw. auf dem Standard-Settings.
Obwohl beim Programmneustart der String "QuellPfad" den Wert des letzten Programmlaufs erhält.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="userSettings" _
type="System.Configuration.UserSettingsGroup, System," & _
"Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="ICE.My.MySettings" _
type="System.Configuration.ClientSettingsSection, System," & _
"Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" _
allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
<userSettings>
<ICE.My.MySettings>
<setting name="QuellPfad" serializeAs="String">
<value>C:\</value>
</setting>
<setting name="Unterpfad" serializeAs="String">
<value />
</setting>
<setting name="MainLocation" serializeAs="String">
<value>0, 0</value>
</setting>
<setting name="MainSize" serializeAs="String">
<value>800, 600</value>
</setting>
</ICE.My.MySettings>
</userSettings>
</configuration> In "Debuggen" - "Test1 - Debugeigenschaften" - "Einstellungen" habe ich:
Quellpfad - String - Benutzer - C:\
MainLocation - System.Drawing.Point - Benutzer - 0;0
MainSize - System.Drawing.Size - Benutzer - 800;600
Ich verstehe gar nicht, warum der QuellPfad korrekt gespeichert wird, während MainLocation und MainSize ignoriert werden.
Und warum sich der dem QuellPfad zugewiesene String nicht in der .Config-Datei findet.
Kann mir da vielleicht jemand von Euch helfen, weiterzukommen?
Beste Grüsse und Danke schon mal. |