Autor Beitrag
erfahrener Neuling
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 233
Erhaltene Danke: 19

Win 7, Win 10
C#, ASP-MVC (VS 2017 Community), MS SQL, Firebird SQL
BeitragVerfasst: Mo 04.04.16 09:08 
Hallo,

diesmal brauch ich euren Rat. Mein Problem macht diesmal keinen Sinn und ich komm nicht drauf. Vllt hilft es ja, wenn ihr den Code seht, ich versteh's nicht.

Zum Problem: eigentlich ganz simple Sache, ich wollte am Anfang des Programms Werte für die Höhe und Breite der Form aus einer Datei lesen und damit dann die Form-Variablen deklarieren. Am Programmende werden die aktuellen Werte wieder in die Txt-Datei geschrieben.

Also kurz gesagt: Das Programm soll sich merken, welche Fenstergröße man beim letzten Mal vor dem Schließen verwendet hat.

Dabei kam es jetzt jedes(!) Mal dazu, dass die Werte zwar richtig ausgelesen wurden, aber die Breite war trotzdem immer die, die ich im Designer angegeben hab. Bin verwirrt, schreibfehler konnte ich eigentlich ausschließen.

Hier der Code beim Abrufen der Werte in Mainform_Shown:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
this.formHeight = Tools.GetValueFromFile("formheight",this.configFilePath);     //ließt die Werte, für die
this.formWidth = Tools.GetValueFromFile("formwidth",this.configFilePath);       //letzte Fenstergröße aus der config

this.Height = Convert.ToInt32(this.formHeight);     //deklariert die Mainform-Size-Variablen
this.Width = Convert.ToInt32(this.formWidth);       //mit den Werten aus der config

Die Variablen formHeight und formWidth werden per Mainform_SizeChanged-Event wieder geändert.

Das Abspeichern funktioniert auch fehlerfrei.

Also: Hat einer von euch vielleicht eine Idee woran es liegen könnte, dass die Breite immer mein standard-entwurf-Wert ist? (obwohl ich nicht glaube, dass es am Code liegt)

Moderiert von user profile iconChristian S.: Beiträge zusammengefasst

Also nochmal um das zu verdeutlichen: Alles funktioniert, nur bei
ausblenden C#-Quelltext
1:
this.Width = Convert.ToInt32(this.formWidth);					
nimmt er den Standard-Wert und nicht den von formWidth
erfahrener Neuling Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 233
Erhaltene Danke: 19

Win 7, Win 10
C#, ASP-MVC (VS 2017 Community), MS SQL, Firebird SQL
BeitragVerfasst: Mo 04.04.16 10:43 
Also ich hab's jetzt mit
ausblenden C#-Quelltext
1:
this.Size = new System.Drawing.Size(Convert.ToInt32(this.formWidth), Convert.ToInt32(this.formHeight));					
gelöst (funktioniert einwandfrei), aber trotzdem weiß ich noch nicht, warum das mit Height und Width nicht funktioniert hat.

Kann mir das vielleicht einer erklären, der sich damit auskennt?
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 04.04.16 10:47 
Die Zuweisung zu Height dürfte das SizeChanged-Ereignis auslösen und dann steht in formWidth wieder der alte Wert drin.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".

Für diesen Beitrag haben gedankt: erfahrener Neuling
erfahrener Neuling Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 233
Erhaltene Danke: 19

Win 7, Win 10
C#, ASP-MVC (VS 2017 Community), MS SQL, Firebird SQL
BeitragVerfasst: Mo 04.04.16 13:48 
Oh stimmt. Das mit dem Event hab ich mal wieder nicht bedacht ;)
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 04.04.16 15:43 
- Nachträglich durch die Entwickler-Ecke gelöscht -

Für diesen Beitrag haben gedankt: erfahrener Neuling
erfahrener Neuling Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 233
Erhaltene Danke: 19

Win 7, Win 10
C#, ASP-MVC (VS 2017 Community), MS SQL, Firebird SQL
BeitragVerfasst: Di 05.04.16 10:14 
Ok das mit den Settings und der app.config wusste ich noch nicht. Ich habe mir dafür (wie du es schon erwähnt hast) eine eigene Klasse geschrieben, die auch ganz gut funktioniert und super einfach ansprechbar ist (als kleine Übung :)).