massther napisał(a)
w Form_Paint nie powinienies miec na sztywno ustalone gdzie ma rysowac sie linia, tylko poczatek i koniec linii trzymac w zmiennych, a w kliknieciu button1 i button2 zmienic wartosci tych zmiennych i wywolywac invalidate
Chyba jestem jakis glupi, albo , bo to nie chce dzialac. Zrobilem tak jak mowiles
int y1 = 485;
private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
Pen p = new Pen(Color.Black, 1);
g.DrawLine(p2, y1, 25, y1, 421); # poczatek - zawsze staly
}
pozniej zamiast buttonow zdecydowalem sie na trakbar'a, wiec:
private void trackBar1_Scroll(object sender, EventArgs e)
{
System.Drawing.Graphics graphicsObj;
graphicsObj = this.CreateGraphics();
Pen myPen = new Pen(System.Drawing.Color.Black, 2);
switch (trackbar1.Value)
{
case 1:
graphicsObj.DrawLine(myPen, y1, 25, y1, 421); # poczatkowe wartosci
Invalidate();
break;
case 2:
graphicsObj.DrawLine(myPen, y1+5, 25, y1+5, 421);
Invalidate();
break;
case 3:
graphicsObj.DrawLine(myPen, y1+10, 25, y1+10, 421);
Invalidate();
break;
}
myPen.Dispose();
}
Co robie zle? Bo stosujac ten kod linia sie nie wyswietla przy przesunieciu trakbara...