Chcę żeby na pictureboxie pojawił się prostokąt, ale dopiero wtedy, gdy kliknę w button. Kłopot w tym,że gryzą mi się eventy args z paintargs.
Czy wie ktoś może jak to rozwiązać?
Chcę żeby na pictureboxie pojawił się prostokąt, ale dopiero wtedy, gdy kliknę w button. Kłopot w tym,że gryzą mi się eventy args z paintargs.
Czy wie ktoś może jak to rozwiązać?
Sory wielkie za ten bałagan w kodzie, ale od dwóch godzin tak eksperymentuje, że nie wiem.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ruchome_figury
{
public partial class Form1 : Form
{
Kwadrat bs_kwadrat = new Kwadrat(20, 20, 200, 200, Color.Red, DashStyle.Solid, 1, true);
public Form1()
{
InitializeComponent();
}
//początek klasy kwadrat
public class Kwadrat
{
int bs_x, bs_y;
int bs_width;
int bs_height;
Color bs_Kolor;
Pen bs_pioro;
DashStyle bs_Rodzaj_linii;
int bs_grubosc;
bool bs_widoczny;
// to dziala
public Kwadrat(int x, int y,int bs_width,int bs_height,Color bs_Kolor,DashStyle bs_Rodzaj_linii,int bs_grubosc,bool bs_widoczny)
{
this.bs_x = x;
this.bs_y = y;
this.bs_width=bs_width;
this.bs_height = bs_height;
this.bs_Kolor = bs_Kolor;
this.bs_Rodzaj_linii = bs_Rodzaj_linii;
this.bs_grubosc =bs_grubosc;
this.bs_widoczny = bs_widoczny;
bs_pioro = new Pen(bs_Kolor, bs_grubosc);
}
//to dziala
public void ustaw_xy(int x, int y)
{
this.bs_x = x;
this.bs_y = y;
}
//to dziala super
public void bs_narysuj(PaintEventArgs k)
{
//jak tutaj daje te linie to po uruchamieniu mam prostokąt od razu widoczny, a ja bym chciał go zobaczy dopiero po kliknięciu w przycisk;
k.Graphics.DrawRectangle(bs_pioro,bs_x,bs_y,bs_width,bs_height);
}
}
***************tu jest lipa************
private void bs_rysuj_kwadrat_Click(object sender, EventArgs e,PaintEventArgs k)
{
Graphics rysownica = this.bs_plotno.CreateGraphics();
bs_plotno.Image = new Bitmap(400,400);
rysownica = Graphics.FromImage(bs_plotno.Image);
//jesli te linie wrzucam tutaj, to po prostu po klikniętu w button, nie pojawia się kwadrat
k.Graphics.DrawRectangle(bs_pioro,bs_x,bs_y,bs_width,bs_height);
}
private void bs_plotno_Paint(object sender, PaintEventArgs k)
{
bs_kwadrat.bs_narysuj(k);
}
}
}
Może jakieś objaśnienie? Co nie działa?
dam1an W mailu pojawił mi sę od ciebie fragment odpowiedzi, którego nie widzę tutaj. Dziwne.
private void bs_rysuj_kwadrat_Click(object sender, EventArgs e,PaintEventArgs k)
{
Graphics rysownica = this.bs_plotno.CreateGraphics();
bs_plotno.Image = new Bitmap(400,400);
rysownica = Graphics.FromImage(bs_plotno.Image);
//jesli te linie wrzucam tutaj, to po prostu po klikniętu w button, nie pojawia się kwadrat
k.Graphics.DrawRectangle(bs_pioro,bs_x,bs_y,bs_width,bs_height);
}
To wyżej to jest handler od kliknięcia w button? Skąd tam się wziął ten trzeci argument?
Spróbuj tak:
MyButtonClick(object sender, EventArgs e)
{
Graphics rysownica = this.bs_plotno.CreateGraphics();
rysownica.Graphics.DrawRectangle(bs_pioro,bs_x,bs_y,bs_width,bs_height);
}