Entwickler-Ecke

WinForms - Auf DataGridView Linien zeichnen


Doommortar - Sa 13.09.08 08:58
Titel: Auf DataGridView Linien zeichnen
Hallo

Ich programmiere gerade an einem Sudoku Spiel. Als Spielfeld benutze ich ein DataGridView.

Kann man auf einen DataGridView Linien zeichnen. Ich würde damit gern das Spielfeld in die entsprechenden Blöcke einteilen. Geht das?

Ich hoffe ihr könnt mir helfen.

Gruß Doommortar


Skiller-1988 - Sa 13.09.08 11:02

Ja das geht. Und zwar deshalb weil das Datagridview die Methode CreateGraphics() unterstützt.

Hier ein paar ansätze:

C#-Quelltext
1:
2:
3:
Graphics g = dataGridView1.CreateGraphics();
g.DrawLine(Pens.Black, 5,5,50,50)  //Zeichnet eine Line
g.DrawRectangle(Pens.Black, 5,5,50,50// Zeichnet ein nicht gefülltes Rechteck


Doommortar - Sa 13.09.08 14:20

Hallo

Vielen Dank für deine Hilfe. Leider wird die Linie oder das Rechteck nicht auf dem DataGridView gezeichnet.

Muß man da erst noch irgend eine Einstellung vornehmen?

Gruß Doommortar


Skiller-1988 - Sa 13.09.08 16:31

Ich weis nicht was bei dir nicht geklapt hat, ich habe es ausprobiert mit einen Button und einen Klickevent da hat es funktioniert. Ich denke mal es kommt ganz darauf an wann es gezeichnet wird und ob es anschließend überzeichnet wird.


Doommortar - Sa 13.09.08 17:25

Hallo

Kannst du mal bitte dein Code posten damit ich sehe in welcher Reihenfolge du das machst. Oder du schickst mir gleich dein kleines Programm.

Gruß Doommortar


Skiller-1988 - Sa 13.09.08 18:28

Ja habe es nur so wie gepostet mal ausprobiert halt nen gridview genommen und ein Butten unb beim Button klickevent den bereitsgepostetet Code verwendet.

Mehr Infos zur zur Grapics - Klasse gibt es hier [http://www.galileocomputing.de/openbook/visual_csharp/visual_csharp_17_002.htm#mj9c299f13d5b728c8bc34c048013096d4]


Doommortar - So 14.09.08 12:12

Hallo

Wenn ich die Linien über ein Button klickevent zeichne sind sie bei mir sichtbar. Ich möchte aber das die Linien sofort beim Programmstart erscheinen. Leider werden sie jetzt wahrscheinlich sofort überzeichnet.

Wie muß ich das machen das die Linien sofort sichtbar sind?

Gruß Doommortar