Po co używasz SetPixel, jak jest DrawLine
?
dodaj do FormLoad:
pictureBox1.Image = new Bitmap(pictureBox1.Width, pictureBox1.Height);
i robimy to tylko raz.
a potem:
void przelicz_kratki_i_rysuj()
{
using (Graphics g = Graphics.FromImage(pictureBox1.Image))
{
g.Clear(Color.AliceBlue);
g.DrawLine(Pens.Red, 0, 0, pictureBox1.Image.Width-1, pictureBox1.Image.Height-1);
}
// pictureBox1.Refresh(); // jeśli będzie trzeba
}
Nie sprawdzane.
No jeśli Pan chce za pomocą
g.DrawLine(Pens.Red, 0, 0, pictureBox1.Image.Width-1, pictureBox1.Image.Height-1);
narysować tylko jedna linie przekątną proszę bardzo. Ja w poprzednim temacie umieściłem taki sposób:
/*linie poziome*/
int wart_poz_str = 0;
int wart_poz_kon = tab.GetUpperBound(0) + 1;
Pen nowy = new Pen(Color.Purple);
for (int x = 0; x < wart_poz_kon; x++)
{
if (x % 10 == 0)
g.DrawLine(nowy, wart_poz_str, x, wart_poz_kon, x);
}
g.DrawLine(nowy, wart_poz_str, wart_poz_kon, wart_poz_kon, wart_poz_kon);
/*linie pionowe*/
int wart_pion_str = 0;
int wart_pion_kon = tab.GetUpperBound(1) + 1;
Pen nowy2 = new Pen(Color.Plum);
for (int x = 0; x < wart_pion_kon; x++)
{
if (x % 10 == 0)
g.DrawLine(nowy2, x, wart_pion_str, x, wart_pion_kon);
}
g.DrawLine(nowy2, wart_pion_kon, wart_pion_str, wart_pion_kon, wart_pion_kon);
Ale on mi nie pozwalał na rysowanie ilości komórek które użytkownik podaje.