Laden...

Grid ähnliches Control gesucht für Brettspiel

Erstellt von ibaxx vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.796 Views
I
ibaxx Themenstarter:in
90 Beiträge seit 2007
vor 13 Jahren
Grid ähnliches Control gesucht für Brettspiel

Hallo,

ich suche ein Control mit quadratischen Feldern für ein Brettspiel.
Also wo man auch scrollen kann um alle Felder zu sehen.
Ich hatte irgendwo im Netz von SquareControl gelesen, dies aber nicht gefunden, die Frage ist auch ob dort das scrollen möglich ist.

Danke schonmal
Ingo

731 Beiträge seit 2006
vor 13 Jahren

Wie wärs mit nem TableLayoutPanel?

MfG
wax

I
ibaxx Themenstarter:in
90 Beiträge seit 2007
vor 13 Jahren

danke schonmal,

wie realisier ich das scrollen bei dem control?
bei dem geradigen kurzen test, scaliert er die felder.

kann man in den feldern bilder layern?

I
ibaxx Themenstarter:in
90 Beiträge seit 2007
vor 13 Jahren

gleich noch ne frage...

geht denn bei dem Control auch ein Auswerten in welches Feld geklickt wurde?

mfg
Ingo

I
ibaxx Themenstarter:in
90 Beiträge seit 2007
vor 13 Jahren

Das TableLayoutPanel gefällt mir nicht ganz so.
hat jemand eine alternative?

3.170 Beiträge seit 2006
vor 13 Jahren

Hallo,

eine Alternative wäre alles selbst zu zeichnen.
Siehe [Tutorial] Zeichnen in Windows-Programmen (Paint/OnPaint, PictureBox)

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

I
279 Beiträge seit 2008
vor 13 Jahren

Hi,

also ein TableLayoutPanel sehe ich als gutes control um ein brettspiel zu realisieren.
Was spricht denn dagegen?

Der inhalt der zellen kann doch mit usercontrlols gefüllt werden, die die funktionen deines brettspiels usw. ausführen, is doch perfekt für sowas! oO

3.511 Beiträge seit 2005
vor 13 Jahren

Eine andere Alternative wäre vielleicht das SourceGrid

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

Gelöschter Account
vor 13 Jahren

ich halte die Idee mit dem TableLayoutpanel für nciht sinnig. Wenn man bedenkt, das da unter umständen wirklich viele controls rein müssen.... außerdem möchte man dann bestimmt auch animationen ala spielstein von feld a nach feld c bewegen anzeigen und da wird es dann echt trickey das umzusetzen.

Am sinnvollsten ist hier das selber zeichnen.

4.938 Beiträge seit 2008
vor 13 Jahren

Hallo ibaxx,

auf CodeProject gibt es ein Projekt (Reversi), welches ein SquareControl benutzt: Reversi in C#

Den SourceCode dazu gibt es auch unter SquareControl.cs

Vllt. kannst du dir da einiges abschauen (das Spielfeld wird dabei auch mittels des Paint-Ereignisses selbst gezeichnet).

I
ibaxx Themenstarter:in
90 Beiträge seit 2007
vor 13 Jahren

hi,

vielen dank für die vielen tipps.
also am vielversprechendsten wirkt bis jetzt das source grid, da man dort ein scrollen gleich hat.
die anderen möglichkeiten scheu ich eher, da ich frei wählbare brett größen haben möchte, was das ganze komplizierter macht.

ich probier mal rum...
danke

ps. über etwaige weitere tipps würde ich mich natürlich auch noch freuen

Gelöschter Account
vor 13 Jahren

Das Sourcegrid ist nicht für die art deiner Anforderung gemacht. Du wirst da schnell auf eine Grenze stoßen, die du nicht durchbrechen kannst.

Das scrollen ist nicht so kompliziert wie man im ersten Augenblick annehmen mag.

I
ibaxx Themenstarter:in
90 Beiträge seit 2007
vor 13 Jahren

Hallo,
wo find ich ein Beispiel wo das mit dem scrollen erklärt ist?
danke schonmal
Ingo

Gelöschter Account
vor 13 Jahren

z.B. für die Horizontale: Du hast einen Sichtbaren bereich s1 bis s2 und einen virtuelle Gesamthöhe h1. Dann nimmst du einfach den Scrollbalken und gibst ihm als maxvalue H1 und meldest dich ans Scrollevent an. Bei einer Änderung verschiebst du einfach s1 entsprechend und löst ein neuzeichnen aus. In deinen Zeichenroutinen beachtest du einfach, das du nur den spezifischen, sichtbaren bereich malst (also s1 und s2 bei den Positionen mit einbeziehst).

Das selbe noch für die Vertikale und fertig.

I
ibaxx Themenstarter:in
90 Beiträge seit 2007
vor 13 Jahren

danke...
kann mir dass zwar noch nicht so ganz vorstellen, aber ich glaub ich probier mal am we

5.299 Beiträge seit 2008
vor 13 Jahren

Hi!

Zum Scrollen: Mach dein Brett so groß wie du brauchst, und setze es auf ein ScrollableControl.

ScrollableControl wird von diversen ContainerControls beerbt: Panel, Form, SplitContainer...

Hier ein Sample, wo das Form als ScrollableControl fungiert (AutoScroll=true):

Der frühe Apfel fängt den Wurm.

I
ibaxx Themenstarter:in
90 Beiträge seit 2007
vor 13 Jahren

hallo,

wo bekomm ich denn den scrollable control her?
find ich irgendwie in der toolbox nicht.

MfG
Ingo

5.299 Beiträge seit 2008
vor 13 Jahren

ScrollableControl ist eine BasisKlasse. Du kannst jedes der anderen genannten nehmen, und noch mehr - halt alle Controls, die ScrollableControl beerben.

Der Begriff Vererbung ist aber BasisWissen, damit mußt du dich ausführlich auseinandersetzen. Welche Klasse wen beerbt kann man schön im ObjectBrowser nachgucken

Hmm. vlt. täte sich auch einiges klären, wenn du die Solution runnerladn und ausprobiern tätest.

Der frühe Apfel fängt den Wurm.

K
7 Beiträge seit 2010
vor 13 Jahren

Warum nicht einfach ein DataGridView ohne header? Du kannst jede Zelle ansprechen, die Anzahl der Spalten und Zeilen dynamisch erweitern, Scrollbars hinzufügen und jede Menge Events abfangen.

Gelöschter Account
vor 13 Jahren

Weil das DataGridView eines der am schlechtesten zu erweiternde Control des gesamten Frameworks ist.

Y
238 Beiträge seit 2005
vor 13 Jahren

Hallo ibaxx,

das beste ist immer noch wenn man alles selbst macht - die grösste Kontrolle !
Schaue dir doch ein mal das Attachement an, da habe ich das Konzept mal groß skizziert.

Gruß