Entwickler-Ecke
WinForms - textbox Breite und Höhe anpassen
ripperle - So 28.03.10 15:35
Titel: textbox Breite und Höhe anpassen
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 - 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 - 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 - 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 - Di 30.03.10 13:38
Da ist das Table-Layout-Panel wunderbar erklärt:
http://msdn.microsoft.com/de-de/library/system.windows.forms.tablelayoutpanel(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 - Di 30.03.10 13:59
norman2306 hat folgendes geschrieben : |
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
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!