Autor Beitrag
ripperle
Hält's aus hier
Beiträge: 9



BeitragVerfasst: So 28.03.10 15:35 
Hallo an alle im Forum,

ich versuche mich seit einigen Tagen im Programmieren in c#. Als "Übungsaufgabe" wollte ich ein Sudokuprogramm mit winforms realisieren.
Als Oberfläche habe ich mir 81 (9x9) Textboxen in einem Array erstellen lassen welche das Spielfeld darstellen sollen.
Soweit so gut das funktioniert auch alles wunderbar. Nun will ich die Größe der Textboxen vergrößern wenn das Fenster vergrößert wird. Das problem ist das sich die Höhe der textboxen nur dann vergrößert wenn ich die schriftgröße vergrößere. Die Breite kann ich beliebig vergrößern
(mytextboxarray[arrayelement].width = ... und mytextboxarray[arrayelement].Height = ...).
Wenn ich die textboxen als multiline definier dann funktioniert auch die Höhenänderung aber das will ich eig. nicht. Ich würde gern die Breite und Höhe definieren und die Schriftgröße dann an die Größe der Textbox anpassen und nicht umgekehrt :)

Ich hoffe ihr versteht wo mein Problem liegt und könnt mir ein paar tipps geben wie man solche formänderungen am besten umsetzt.

Vielen Dank
ripperle
norman2306
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 222
Erhaltene Danke: 16

Win XP, Win 7 64-Bit
C# 4.0 (VS2010)
BeitragVerfasst: So 28.03.10 16:25 
da wirst du mit der Textbox ein Problem haben, ich glaube das geht nicht. Verwende stattdessen eine RichTextBox, die kann man beliebig ziehen. Oder du verwendest gleich ein DataGridView. Damit kannst du dann beliebig große Sodukos generieren und es bleibt trotzdem übersichtlich.
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: So 28.03.10 18:25 
Hallo und noch :welcome:

DataGridView gefällt mir weniger: Das ist dazu da, Daten anzuzeigen und nicht selbst zu speichern (auch wenn es sich hier nur um 9x9 Ziffern handelt). Weitere Alternative ist TableLayoutPanel.

Gruß Jürgen
ripperle Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Di 30.03.10 13:17 
Hallo und danke für die Antworten,

habe eine andere Lösungen gefunden, mit dem Befehl textbox.autosize = false; wird die höhe nicht mehr von der schriftgröße bestimmt. ich kann also höhe und breite bestimmen und schau dann noch das die schriftgröße in etwa der höhe der textbox entspricht (schriftgrad in pixel ist dann ca. 0.5*höhe_textbox)

@JüTho:
Was genau kann ich denn mit diesem TableLayoutPanel machen?
norman2306
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 222
Erhaltene Danke: 16

Win XP, Win 7 64-Bit
C# 4.0 (VS2010)
BeitragVerfasst: Di 30.03.10 13:38 
Da ist das Table-Layout-Panel wunderbar erklärt:

msdn.microsoft.com/d...outpanel(VS.80).aspx


Zitat:
DataGridView gefällt mir weniger: Das ist dazu da, Daten anzuzeigen und nicht selbst zu speichern


Naja, warum ich das DGV vorgeschlagen habe, weil man damit so schön DataBinding nutzen kann. Ich liebe das. Man kann z.B. eine Sodoku-Klasse erstellen, der man die Anzahl der 9x9-Felder und einen Schwierigkeitsgrad übergibt. Die Berechnet das Ding dann und dann stellt man es mit Hilfe des DGV dar. Dort kann man es dann lösen und mit Hilfe des DataBindings ist die ganze Auswertung etc. auch recht übersichtlich. Das bekommt man mit einem LayoutPanel meiner Meinung nach nicht so schön und schnell hin.
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Di 30.03.10 13:59 
user profile iconnorman2306 hat folgendes geschrieben Zum zitierten Posting springen:
Naja, warum ich das DGV vorgeschlagen habe, weil man damit so schön DataBinding nutzen kann. Ich liebe das. Man kann z.B. eine Sodoku-Klasse erstellen, der man die Anzahl der 9x9-Felder und einen Schwierigkeitsgrad übergibt. Die Berechnet das Ding dann und dann stellt man es mit Hilfe des DGV dar. Dort kann man es dann lösen und mit Hilfe des DataBindings ist die ganze Auswertung etc. auch recht übersichtlich.

Das ist eine gute Erklärung. Zum DGV gehört natürlich Datenbindung; und wenn du sie für Sudoku in dieser Form nutzt bzw. vorschlägst, gefällt es mir hervorragend als Lösung. :D

Diesen Zusammenhang hattest du oben leider nicht erwähnt; deshalb hatte ich befürchtet, es würde direkt für die Daten missbraucht.

Gruß Jürgen